zoukankan      html  css  js  c++  java
  • Python 使用QQ 邮箱进行发送邮件及经验总结

     今天我带大家实现下简单的发邮件功能。我们要使用到email和smtplib库,这两个库时python自带的,直接import 引用就好了,实现环境python3.6.

    • 对QQ邮箱进行开启SMTP服务

             开启SMTP服务可以查看此链接,讲的很详细: https://jingyan.baidu.com/article/b0b63dbf1b2ef54a49307054.html

             如下图:需要开启POP3/SMTP 服务,获取到的授权码,就是你登陆时需要用到的。

         

    •    使用QQ邮箱进行邮件发送: 代码如下

                 第一步:登陆QQ邮箱。

                 第二步:构建发件人,收件人,邮件标题,邮件内容等信息。

                 第三步:发送邮件。

         

     1 import smtplib
     2 import email
     3 from email.mime.text import MIMEText
     4 from email.header import Header
     5 from email.mime.multipart import MIMEMultipart
     6 
     7 #纯文本格式发送email
     8 def email_sendmail_txt(sender,receiver,title,message):
     9     username = "67xxxx305@qq.com"
    10     password_pop3 = "veixxxxxkmflxxgb"
    11     #password_imap = "wpxxxxxyjnxxbcje"
    12     smtp = smtplib.SMTP()
    13     smtp.connect('smtp.qq.com')
    14     smtp.login(username, password_pop3)
    15     msg = MIMEText(message, "plain", 'utf-8')
    16     msg["Subject"] = Header(title, 'utf-8')
    17     msg["From"] = sender
    18     msg["To"] = receiver
    19     to_address = receiver.split(',')    #将Str格式的receiver分割成list格式,才能发送邮件给多个人。
    20     smtp.sendmail(sender, to_address, msg.as_string())
    21     smtp.quit()
    22 
    23 if __name__ == "__main__":
    24 
    25   sender = "67xxxx305@qq.com"
    26   receiver = 'lixx@vaxxxxxch.com,67xxxx305@qq.com'
    27 
    28   mail_message = 'Dear all,
            今日CP3良率监控情况如下所示:
             您们好,我是TE助理1号,很高兴加入TE group,我会努力为大家提供服务,希望大家能够喜欢我,谢谢!
    '
    29 
    30   mail_title = "CP3 yield monitor"
    31 
    32   email_sendmail_txt(sender,receiver,mail_title,mail_message) #登陆QQ邮箱并发送消息

         

    • 问题总结
    1. 用email_sendmail 发送邮件,明明有很多个接收人,但是只有第一个人能收到邮件。

             ->:原因在于msg["To"] = receiver 的类型为str,而email_sendmail 中to_address 参数则需要是list格式,两者参数不一样。

                 两者如果混用,导致结果就是,发送的mail显示是有很多个收件人,可是成功收取邮件的只有第一个人而已。

                  从smtplib.py中找到sendmail 函数定义就可以看到。

     

                  解决办法:如下图只需要将msg["To"] = receiver str类型的内容通过split()进行分割成list格式,就解决了!!!

  • 相关阅读:
    uva 10986
    sed命令详解及应用实例
    JavaScript弹出层
    eclipspe导入hibernate的源代码
    用eclipse查看JDK源代码
    Java设计模式之适配器模式(Adapter)
    Java计算程序运行时间
    Java的IO流各个类的使用原则
    Java的IO输入输出流类的介绍(有图)
    解惑:字、位、字节、字符、字符串。
  • 原文地址:https://www.cnblogs.com/lize19940412/p/10850522.html
Copyright © 2011-2022 走看看