• 使用QQ邮箱发送email(Python)


    实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢?
    代码很简单,短短几行代码就可以实现这个功能。
    使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了。
    我们先说说网上常用的使用这那两个模块发送邮件的方法
    代码如下:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    def SendEmail(fromAdd, toAdd, subject, attachfile, htmlText):
      strFrom = fromAdd;
      strTo = toAdd;
      msg =MIMEText(htmlText);
      msg['Content-Type'] = 'Text/HTML';
      msg['Subject'] = Header(subject,'gb2312');
      msg['To'] = strTo;
      msg['From'] = strFrom;
      
      smtp = smtplib.SMTP('smtp.qq.com');
      smtp.login('501257367@qq.com','password');
      try:
        smtp.sendmail(strFrom,strTo,msg.as_string());
      finally:
        smtp.close;
    
    if __name__ == "__main__":
      SendEmail("501257367@qq.com","501257367@qq.com","","hello","hello world");
    

    运行结果:

    smtplib.SMTPAuthenticationError: (530, 'Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28')
    

    报错,需要一个安全的连接,例如SSL,因此接下来我们会使用SSL的方式去登录,但是在那之前,我们需要做一些准备,打开qq邮箱,点击设置->
    账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启IMAP/SMTP服务,然后根据要求使用手机发送到指定号码,获取授权码,
    这个授权码就是你接下来登录要使用的密码,配置完成,上代码

    import smtplib
    from email.mime.text import MIMEText
    _user = "你的qq邮箱"
    _pwd  = "你的授权码"
    _to   = "xxx@163.com"
    
    msg = MIMEText("Test")
    msg["Subject"] = "don't panic"
    msg["From"]    = _user
    msg["To"]      = _to
    
    try:
    	s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    	s.login(_user, _pwd)
    	s.sendmail(_user, _to, msg.as_string())
    	s.quit()
    	print("Success!")
    except smtplib.SMTPException,e: 
    	print ("Falied,%s" %e) 
    

    运行结果如下:

    大功告成

    上述是在Python2.7版本下完成的测试

  • 相关阅读:
    Anoconda管理Python版本 | Python
    VSCode用以Python开发的配置 | VSCode
    不联网的情况下安装python环境 | Python(转)
    批量按要求修改文件名
    [OpenLayers] 控件系列之SelectFeature同时支持hover与click
    python使用suds调用webservice接口
    【转载】eMBMS知识点汇总(概念/应用场景/工作原理/标准进程/发展现状)
    处理器分类
    3GPP Release 4G-5G 演进
    浅谈css中一个元素如何在其父元素居中显示
  • 原文地址:https://www.cnblogs.com/leetao94/p/5460520.html
Copyright © 2020-2023  润新知