加载中...

菜谱 5:发送带附件的邮件


我们平时需要使用 Python 发送各类邮件,这个需求怎么来实现?答案其实很简单,smtplib 和 email库可以帮忙实现这个需求。smtplib 和 email 的组合可以用来发送各类邮件:普通文本,HTML 形式,带附件,群发邮件,带图片的邮件等等。我们这里将会分几节把发送邮件功能解释完成。

smtplib 是 Python 用来发送邮件的模块,email 是用来处理邮件消息。

发送带附件的邮件是利用 email.mime.multipart 的 MIMEMultipart 以及 email.mime.image 的 MIMEImage,重点是构造邮件头信息:

  1. import smtplib
  2. from email.mime.multipart import MIMEMultipart
  3. from email.mime.text import MIMEText
  4. sender = '***'
  5. receiver = '***'
  6. subject = 'python email test'
  7. smtpserver = 'smtp.163.com'
  8. username = '***'
  9. password = '***'
  10. msgRoot = MIMEMultipart('mixed')
  11. msgRoot['Subject'] = 'test message'
  12. # 构造附件
  13. att = MIMEText(open('/Users/1.jpg', 'rb').read(), 'base64', 'utf-8')
  14. att["Content-Type"] = 'application/octet-stream'
  15. att["Content-Disposition"] = 'attachment; filename="1.jpg"'
  16. msgRoot.attach(att)
  17. smtp = smtplib.SMTP()
  18. smtp.connect(smtpserver)
  19. smtp.login(username, password)
  20. smtp.sendmail(sender, receiver, msgRoot.as_string())
  21. smtp.quit()

注意:这里的代码并没有把异常处理加入,需要读者自己处理异常。


还没有评论.