初识python3邮件发送
前不久学习了一下python是如何发送邮件到指定邮箱,python使用版本为python3.7。
直接上脚本,相关描述见代码注释:
# !/usr/bin/python3
#导入smtplib包,引用对应插件
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
class email():
def to_send(self, msg, Msender, Mpass, Mreceiver=[]):
"""
参数讲解
:param msg: 邮件正文
:param Msender: 发送者邮箱
:param Mpass: 发送者服务器授权码
:param Mreceiver: 接收者(多个)
:return: 返回状态 True 发送成功 False 发送失败
"""
result = True
try:
# 对需要传送的消息进行编码
Mcontent = MIMEText(msg, 'html', 'utf-8')
# formataddr中分别是发送人的昵称和发送邮箱
Mcontent['From'] = formataddr(["sender'name", Msender])
# 括号里分别是收件人邮箱昵称、收件人邮箱账号(由于本例子是做的一个多接收者示例,因此增加了一个循环去添加接收人信息)
for tmp in Mreceiver:
Mcontent['To'] = formataddr(["checker", tmp])
# 邮件的主题
Mcontent['Subject'] = "Daily Check Test"
# 建立服务,括号中分别是发件人邮箱中的SMTP服务器地址、端口号,下诉例子中使用的是QQ的SMTP服务器
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 括号中分别是发件人邮箱账号、授权码(开启QQ邮箱SMTP服务后,会得到该授权码)
server.login(Msender, Mpass)
# 括号中对应的是发件人邮箱账号、收件人邮箱账号、邮件内容
server.sendmail(Msender, Mreceiver, Mcontent.as_string())
# 关闭连接
server.quit()
# 抛出邮件发送过程中的异常消息
except Exception as err:
result = False
print(err)
return result
# 添加一个主函数进行示例调用
if __name__ == '__main__':
s = email()
receiver = ["接收邮箱1", "接收邮箱2", ...]
res = s.to_send("邮件正文", "发送邮箱", "服务授权码", receiver)
if res:
print("send success!!!")
else:
print("send error!!!")
记录完毕!!!好好学习,天天向上!!!
更多邮件发送方式,请参考:
链接: [https://www.runoob.com/python3/python3-smtp.html]