1. 编写一个最简单的发邮件的python脚本

 
  1. #coding: utf-8
  2. import smtplib
  3. from email.mime.text import MIMEText
  4. from email.header import Header
  5. sender = '929135087@qq.com'       #发件人账号
  6. receiver = '929135087@qq.com'     #收件人,以列表的形式支持多个收件人,例:['收件人1','收件人2']
  7. subject = 'python email test'    #标题
  8. smtpserver = 'smtp.qq.com'       #设置邮件服务器
  9. username = '929135087@qq.com'    #用户名
  10. password = '*********'           #授权口令
  11. msg = MIMEText( 'Hello Python', 'plain', 'utf-8' )         #'内容','格式','编码'
  12. msg['Subject'] = Header( subject, 'utf-8' )                
  13. msg['From'] = Header( '小鱼', 'utf-8' )                    #发件人
  14. try:
  15.     #smtp = smtplib.SMTP()
  16. smtp = smtplib.SMTP_SSL('smtp.qq.com:465')    #使用465端口,默认25端口
  17.     smtp.connect( smtpserver )
  18.     smtp.login( username, password )
  19.     smtp.sendmail( sender, receiver, msg.as_string() )  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
  20. print("邮件发送成功")
  21.     smtp.quit()
  22. except smtplib.SMTPException:
  23. print("Error: 无法发送邮件")
 

2. 运行结果

如果在上述代码usernamepassword,变量中填写邮箱的帐号密码那么会看到以下报错:

 
  1. Traceback (most recent call last):
  2. File "mail.py", line 18, in <module>
  3. smtp.login( username, password )
  4. File "/usr/lib64/python2.6/smtplib.py", line 589, in login
  5. raise SMTPAuthenticationError(code, resp)
  6. smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')
 

3. 解决方法

调用163邮箱或qq邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件或QQ邮箱会让我们设置客户端授权码,这个授权码替代上面代码部分的password即可成功发送邮件

最新文章

  1. .NET面试题系列[11] - IEnumerable&lt;T&gt;的派生类
  2. [转]struts1.2的action参数配置
  3. JSTL(1.1)的配置
  4. js引入php 用来加载静态页面 输出到页面中
  5. JavaScript的DOM操作-非重点部分
  6. SqlDateTime 溢出。
  7. php程序员的水平 看看自己属于那个级别的
  8. [问题2014A05] 解答
  9. python 跳出嵌套循环方法
  10. UIkit的confirm,好看点
  11. 【转】开始iOS 7中自动布局教程(一)
  12. librarynotfoundforlPodsAFNetworking解决放案
  13. SRM 585
  14. 如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”
  15. SpringCloud Feign使用详解
  16. nginx笔记3-负载均衡算法
  17. avg 的使用
  18. Python Pandas 简单使用之 API熟悉
  19. 正则表达式的一些探索(偏JavaScript)
  20. java菜鸟之微信分享

热门文章

  1. 在windows下进行linux开发:利用Vagrant+virtualbox
  2. 分享知识-快乐自己:Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : Dept (XXX)
  3. 关于float与double区别
  4. Nginx-rtmp模块实现流媒体play、push、pull功能
  5. FEC之我见四
  6. oracle隐含参数的查看与修改
  7. css 更换浏览器 默认图标
  8. Parallel Programming-多消费者,多生产者同时运行并行
  9. java基础知识(5)---继承
  10. js遍历for,forEach, for in,for of