首页 > QQ技巧 > 使用Python登录QQ邮箱发送QQ邮件

使用Python登录QQ邮箱发送QQ邮件

时间:2016-09-21 11:21 作者:QQ地带 我要评论

在网上看了一些Python收发邮件的代码,十来行,原本以为使用Python发送邮件很简单,但自己尝试过后才发现其中的艰辛。
 
网上大多数都是收发网易邮箱(163.com),但我没有注册网易邮箱,也不打算为了写个代码专门注册一个不怎么用的邮箱。所以把目标对准了QQ邮箱。
成功发送邮件的条件:
1、邮箱开启SMTP功能
2、获得授权码
3、ssl登录
 
具体操作:
1、登录QQ邮箱,设置-账户-开启服务-开启SMTP服务
2、点击下方的生成授权码,会让你用绑定QQ的手机发送“配置邮件客户端”到指定号码,发送完后会生成一个十六位小写字母的授权码
3、编写python程序,用ssl登录邮箱,邮箱密码为授权码
具体代码
 
  1. from email.mime.text import   MIMEText 
  2. from email.header import Header 
  3. from smtplib import SMTP_SSL 
  4. mail_Info ={ 
  5.             "from" :"XXXXXXXXXXX @qq.com" , 
  6.             "to" :"yyyyyyyyy @qq.com" , 
  7.             "hostName" :"smtp.qq.com" , 
  8.             "userName" :"XXXXXXXXXXX @qq.com" , 
  9.             "password" :" 你的授权码" , 
  10.             "mailSubject" :"test" , 
  11.             "mailText" :"hello world" , 
  12.             "mailEncoding" :" utf-8" 
  13.             } 
  14. smtp = SMTP_SSL ( mail_Info[ "hostName" ]) 
  15. #ssl登录 
  16. smtp.set_debuglevel (1 ) 
  17. smtp.ehlo (mail_Info [ "hostName"]) 
  18. smtp.login (mail_Info [ "userName"] , mail_Info[ "password" ]) 
  19. msg = MIMEText ( mail_Info[ "mailText" ], "plain" ,mail_Info [ "mailEncoding"]) 
  20. msg ["Subject" ] = Header (mail_Info [ "mailSubject"] , mail_Info[ "mailEncoding" ]) 
  21. msg ["From" ] = mail_Info ["from" ] 
  22. msg ["To" ] = mail_Info ["to" ] 
  23. smtp.sendmail (mail_Info [ "from"] , mail_Info[ "to" ], msg.as_string ()) 
  24. smtp.quit () 
 
 
————————————————————–
弯路1:msg = MIMEText ( mail_Info[ “mailText” ], “plain” ,mail_Info [ “mailEncoding”])该句中plain改为text导致邮件能到达但是内容无法显示,改为“html“后,可发送html格式邮件内容
弯路2:smtp = SMTP_SSL ( mail_Info[ “hostName” ])该句中增加25端口,导致发送失败,因为SSL发送的端口为465,缺省或者填上465皆可发送成功

标签: QQ邮箱 Python
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告