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 = "[email protected]"
auth ="xxxxxxxxxxxxxxx"#這個是授權碼
sender = "[email protected]"
receivers = ["[email protected]"]
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還可以發送附件等