python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。
发送邮件主要用到了smtplib 和 email
代码非常简单,上代码:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
mail_host = "smtp.qq.com"
mail_user = "924816452@qq.com"
auth ="xxxxxxxxxxxxxxx"#这个是授权码
sender = "924816452@qq.com"
receivers = ["924816452@qq.com"]
message = MIMEText("门门邮件测试","plain","utf-8")
message['from'] = Header("this is the original","utf-8")
message['to'] = Header("this is the toer","utf-8")
subject = "this is the subject"
message['subject'] = Header(subject,"utf-8")
try:
smtpObj = smtplib.SMTP_SSL()#建立smtp连接,qq邮箱必须用ssl边接,因此边接465端口
smtpObj.connect(mail_host,465)
smtpObj.login(mail_user,auth)#登陆
smtpObj.sendmail(sender,receivers,message.as_string())#发送
print("succeed sending")
except smtplib.SMTPException as err:
print("can not send the email")
print(str(err))
message是邮件的格式,符合smtp定义的格式,此处我们只需调用真充内容即可
主要由三个头和正文组成,三个头分别是 from,to subject.
如代码所示,登陆的时候用了授权码,授权码获取如下;
打开qq邮箱,点击设置->
账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启IMAP/SMTP服务,然后根据要求使用手机发送到指定号码,获取授权码。
这个小例子只是展示了最简单的功能,message还可以发送附件等