本文主要是用python自動化發郵件,其中以後見內容包含郵件主題,郵件正文,以及附件。對於日常使用足夠啦~
關於發送郵件常遇到的問題解決,可參考博客:
https://blog.csdn.net/for_further/article/details/103276962
以上博客,講解了和服務器建立連接的三種方式以及常見報錯解決。
先看一下效果圖,如下:
import smtplib
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP
server = 'SMTP.qq.com'
sender = '[email protected]'
pwd = 'xpvwyhxnsrsrbabi'
receiver = '[email protected]'
msg = MIMEMultipart('related')
msg['From'] = Header('測試發件人')
msg['To'] = Header('測試收件人')
msg['Subject'] = Header('帶附件郵件')
content = '<p><a>假鏈接</a></p><p><img src="cid:image1"></p>'
msg1 = MIMEText(content, 'html', 'utf-8') # 正文
msg2 = MIMEText(open('.//郵件附件.html', 'rb').read(), 'base64', 'utf-8') # 附件
msg2['content-type'] = 'application/octet-stream'
msg2['content-disposition'] = "attachment; filename ='mail_file.html'"
msg3 = MIMEImage(open('.\\images\\image.png', 'rb').read()) # 圖片
msg3.add_header('Content-ID', '<image1>')
msg.attach(msg1)
msg.attach(msg2)
msg.attach(msg3)
sm = SMTP()
sm.connect(server, 25)
sm.login(sender, pwd)
try:
sm.sendmail(sender, receiver, msg.as_string())
print("郵件發送成功")
except smtplib.SMTPException:
print("Error: 無法發送郵件")