zoukankan      html  css  js  c++  java
  • 【python】python 自动发邮件

    一、一般发邮件的方法

    Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

    注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是‘text/plain’,最后一定要用utf-8编码保证多语言兼容性。

    然后,通过SMTP发出去:

     1 # coding:utf-8
     2 import smtplib
     3 from email.mime.text import MIMEText
     4 
     5 
     6 class SendMail:
     7 
     8     def send_mail(self, receiver_list, sub, content):
     9         host = "smtp.qq.com"            # 服务器地址
    10         sender = "123@qq.com"     # 发件地址
    11         password = "pwd"
    12         #邮件内容
    13         message = MIMEText(content, _subtype='plain', _charset='utf-8')
    14         message['Subject'] = sub   # 邮件主题
    15         message['From'] = sender   
    16         message['To'] = ";".join(receiver_list)   # 收件人之间以;分割
    17         server = smtplib.SMTP()
    18         # 连接服务器
    19         server.connect(host=host)
    20         # 登录
    21         server.login(user=sender, password=password)
    22         server.sendmail(from_addr=sender, to_addrs=receiver_list, msg=message.as_string())
    23         server.close()
    24 
    25 if __name__ == '__main__':
    26     send = SendMail()
    27     receive = ["123qq.com", "456@163.com"]
    28     sub = "测试邮件"
    29     content = "测试邮件"
    30     send.send_mail(receive, sub, content)

    其实,这段代码也并不复杂,只要你理解使用过邮箱发送邮件,那么以下问题是你必须要考虑的:

    • 你登录的邮箱帐号/密码
    • 对方的邮箱帐号
    • 邮件内容(标题,正文,附件)
    • 邮箱服务器(SMTP.xxx.com/pop3.xxx.com)

    二、利用yagmail库发送邮件

    yagmail 可以更简单的来实现自动发邮件功能。

    首先需要安装库: pip install yagmail

    然后:

     1 import yagmail
     2 
     3 
     4 class SendMail:
     5 
     6     def send_mail(self, receiver_list, sub, content, attach=None):
     7         host = "smtp.qq.com"
     8         sender = "983@qq.com"
     9         password = "ryg"
    10         # 连接服务器
    11         yag = yagmail.SMTP(user=sender, password=password, host=host)
    12         # 邮件内容
    13         yag.send(to=receiver_list, subject=sub, contents=content, attachments=attach)
    14 
    15 
    16 if __name__ == '__main__':
    17     send = SendMail()
    18     receive = ["983@qq.com", "513@163.com"]
    19     sub = "测试邮件"
    20     content = ["yagmail测试邮件", "
    ", "hello word"]
    21     attch = "C:\Users\Administrator\Desktop\10.jpg"
    22     send.send_mail(receive, sub, conten8t, attch)

    另外,附件也可以之间写在content中,即conten = ["yagmail测试邮件", " ", "hello word", "C:\Users\Administrator\Desktop\10.jpg"]

    少写了好几行代码

  • 相关阅读:
    dirs命令
    pwd命令
    ls命令
    rmdir命令
    install命令和cp命令的区别
    ./configure,make,make install的作用
    install 命令
    Make 命令
    linux configure使用方法
    Linux下which、whereis、locate、find命令的区别
  • 原文地址:https://www.cnblogs.com/dhs94/p/9886599.html
Copyright © 2011-2022 走看看