本文转自:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html

这几天要用python发送邮件,上网找到这篇文章感觉蛮全面的,故转载收藏之。


1. 文件形式的邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.text import MIMEText
  5. from email.header import Header
  6.  
  7. sender = '***'
  8. receiver = '***'
  9. subject = 'python email test'
  10. smtpserver = 'smtp.163.com'
  11. username = '***'
  12. password = '***'
  13.  
  14. msg = MIMEText('你好','text','utf-8') #中文需参数‘utf-8’,单字节字符不需要
  15. msg['Subject'] = Header(subject, 'utf-8')
  16.  
  17. smtp = smtplib.SMTP()
  18. smtp.connect('smtp.163.com')
  19. smtp.login(username, password)
  20. smtp.sendmail(sender, receiver, msg.as_string())
  21. smtp.quit()

2. HTML形式的邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.text import MIMEText
  5.  
  6. sender = '***'
  7. receiver = '***'
  8. subject = 'python email test'
  9. smtpserver = 'smtp.163.com'
  10. username = '***'
  11. password = '***'
  12.  
  13. msg = MIMEText('<html><h1>你好</h1></html>','html','utf-8')
  14.  
  15. msg['Subject'] = subject
  16.  
  17. smtp = smtplib.SMTP()
  18. smtp.connect('smtp.163.com')
  19. smtp.login(username, password)
  20. smtp.sendmail(sender, receiver, msg.as_string())
  21. smtp.quit()

3. 带图片的HTML邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.multipart import MIMEMultipart
  5. from email.mime.text import MIMEText
  6. from email.mime.image import MIMEImage
  7.  
  8. sender = '***'
  9. receiver = '***'
  10. subject = 'python email test'
  11. smtpserver = 'smtp.163.com'
  12. username = '***'
  13. password = '***'
  14.  
  15. msgRoot = MIMEMultipart('related')
  16. msgRoot['Subject'] = 'test message'
  17.  
  18. msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>good!','html','utf-8')
  19. msgRoot.attach(msgText)
  20.  
  21. fp = open('h:\\python\\1.jpg', 'rb')
  22. msgImage = MIMEImage(fp.read())
  23. fp.close()
  24.  
  25. msgImage.add_header('Content-ID', '<image1>')
  26. msgRoot.attach(msgImage)
  27.  
  28. smtp = smtplib.SMTP()
  29. smtp.connect('smtp.163.com')
  30. smtp.login(username, password)
  31. smtp.sendmail(sender, receiver, msgRoot.as_string())
  32. smtp.quit()

4. 带附件的邮件

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

5. 群邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.text import MIMEText
  5.  
  6. sender = '***'
  7. receiver = ['***','****',……]
  8. subject = 'python email test'
  9. smtpserver = 'smtp.163.com'
  10. username = '***'
  11. password = '***'
  12.  
  13. msg = MIMEText('你好','text','utf-8')
  14.  
  15. msg['Subject'] = subject
  16.  
  17. smtp = smtplib.SMTP()
  18. smtp.connect('smtp.163.com')
  19. smtp.login(username, password)
  20. smtp.sendmail(sender, receiver, msg.as_string())
  21. smtp.quit()

6. 各种元素都包含的邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.multipart import MIMEMultipart
  5. from email.mime.text import MIMEText
  6. from email.mime.image import MIMEImage
  7.  
  8. sender = '***'
  9. receiver = '***'
  10. subject = 'python email test'
  11. smtpserver = 'smtp.163.com'
  12. username = '***'
  13. password = '***'
  14.  
  15. # Create message container - the correct MIME type is multipart/alternative.
  16. msg = MIMEMultipart('alternative')
  17. msg['Subject'] = "Link"
  18.  
  19. # Create the body of the message (a plain-text and an HTML version).
  20. text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"
  21. html = """\
  22. <html>
  23. <head></head>
  24. <body>
  25. <p>Hi!<br>
  26. How are you?<br>
  27. Here is the <a href="http://www.python.org">link</a> you wanted.
  28. </p>
  29. </body>
  30. </html>
  31. """
  32.  
  33. # Record the MIME types of both parts - text/plain and text/html.
  34. part1 = MIMEText(text, 'plain')
  35. part2 = MIMEText(html, 'html')
  36.  
  37. # Attach parts into message container.
  38. # According to RFC 2046, the last part of a multipart message, in this case
  39. # the HTML message, is best and preferred.
  40. msg.attach(part1)
  41. msg.attach(part2)
  42. #构造附件
  43. att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8')
  44. att["Content-Type"] = 'application/octet-stream'
  45. att["Content-Disposition"] = 'attachment; filename="1.jpg"'
  46. msg.attach(att)
  47.  
  48. smtp = smtplib.SMTP()
  49. smtp.connect('smtp.163.com')
  50. smtp.login(username, password)
  51. smtp.sendmail(sender, receiver, msg.as_string())
  52. smtp.quit()

7. 基于SSL的邮件

  1. #!/usr/bin/env python3
  2. #coding: utf-8
  3. import smtplib
  4. from email.mime.text import MIMEText
  5. from email.header import Header
  6. sender = '***'
  7. receiver = '***'
  8. subject = 'python email test'
  9. smtpserver = 'smtp.163.com'
  10. username = '***'
  11. password = '***'
  12.  
  13. msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8’,单字节字符不需要
  14. msg['Subject'] = Header(subject, 'utf-8')
  15.  
  16. smtp = smtplib.SMTP()
  17. smtp.connect('smtp.163.com')
  18. smtp.ehlo()
  19. smtp.starttls()
  20. smtp.ehlo()
  21. smtp.set_debuglevel(1)
  22. smtp.login(username, password)
  23. smtp.sendmail(sender, receiver, msg.as_string())
  24. smtp.quit()

【转载】python发送邮件实例的更多相关文章

  1. python 发送邮件实例

    留言板回复作者邮件提醒 -----------2016-5-11 15:03:58-- source:python发送邮件实例

  2. 转载python并行运算实例

    Python的并发处理能力臭名昭著.先撇开线程以及GIL方面的问题不说,我觉得多线程问题的根源不在技术上而在于理念.大部分关于Pyhon线程和多进程的资料虽然都很不错,但却过于细节.这些资料讲的都是虎 ...

  3. python发送邮件实例1

    文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText fr ...

  4. <转>python 发送邮件实例

    文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText fr ...

  5. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  6. 【转】【Python】Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

  7. Python发送邮件(最全)

    简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件. Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听 ...

  8. Python发送邮件(常见四种邮件内容)

    Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04   转自:http://lizhenliang.blog.51cto.com/7876557/1875330 ...

  9. 最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大 ...

随机推荐

  1. thinkphp 手机号和用户名同时登录

    //在注册时用户名不能是纯数字, 防止一个人的用户名和另一个人的手机号相同public function Login(){ if (IS_AJAX) { $username = I('param.us ...

  2. Scarpy+selenium 结合使用

    首先要先在spider对象实例化时,同时实例化一个浏览器对象 # -*- coding: utf-8 -*- import scrapy from selenium import webdriver ...

  3. iis添加共享目录为虚拟目录

    注意物理路径处不能直接选择映射成的本地盘符!!!

  4. php动态链接扩展库

    文章来源:http://keping.me/php-call-so/ PHP调用C/C++动态链接库 David June 19, 2013 C++, Linux, Study 摘要 有时候,单纯依靠 ...

  5. 纯js轮播图

    <div id="wrapper"> <div id="container"> <img src="http://ima ...

  6. sqoop简单介绍

    一简介 Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS ...

  7. 微信证书 javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

    这几天在做微信退款接口,按照api写完之后,在本地测试了下没有问题,于是交给测试让他们在测试环境开测.他们说退款没有成功,感觉去查日志,发现后台报了 javax.net.ssl.SSLExceptio ...

  8. Jquery学习---一键上传

    一键上传 jar包下载 jquery代码 $(function () { $(".uploadfile").upload({ action: 'CourseXMLFileUploa ...

  9. webpack学习(三)html-webpack-plugin插件

    一.html-webpack-plugin插件 简单创建 HTML 文件,用于服务器访问 例如:我们要为输出文件添加哈希值标记,避免老的不变的文件重新加载,避免新修改的文件受缓存影响. 在前后两次在终 ...

  10. Redis 缓存穿透

    Redis 缓存穿透 https://www.cnblogs.com/jiekzou/p/9212114.html 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容 ...