引言
在写程序时,放到后台运行,想知道执行情况,会通过邮件、SMS、微信等方式通知管理员,用的最多的是邮件。
对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP。接收邮件,使用的协议是POP3和IMAP。
POP3和IMAP的区别:POP3在客户端邮箱中所做的操作不会反馈到邮箱服务器,比如删除一封邮件,邮箱服务器并不会删除。IMAP则会反馈到邮箱服务器,会做相应的操作。
本博文以qq邮箱为例
口令获取
发送邮件代码
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host="smtp.qq.com" #设置服务器
mail_user="**********@***.com" #用户名
mail_pass="*********" #口令
def sendMail(receivers=[mail_user], subject='程序运行结束,请查看实验结果', content='程序运行结束,请查看实验结果'):
'''
@param:
receivers list 邮件接收方的邮箱列表, eg. ['****@qq.com', '*****@163.com']
subject str 发送的邮件主题
content str 发送的邮件内容
'''
sender = mail_user
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = Header("complate", 'utf-8')
message['To'] = Header("test", 'utf-8')
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
由于水平有限,文中错误之处在所难免,恳请大佬不吝赐教!