zoukankan      html  css  js  c++  java
  • python + zmail 邮件发送

    zmail库 无须手动添加服务器地址、端口以及适合的协议,zmail会帮你自动完成。

    一、优势

    • 自动填充大多数导致服务端拒信的头信息

    • 将一个字典映射为email,构造信件就像构造字典一样简单

    • 自动寻找邮件服务商端口号地址,自动选择合适的协议(经过认证的)

    • 只依赖于python3

    二、支持的邮件服务商

    封装代码如下:

    import zmail 

    class Email:

    def __init__(self, username="xxx@xxx.com", password="xxxx0", config="qq"):
    """
    登录邮箱
    :param username: 邮箱账号
    :param password: 邮箱密码
    :param config: 企业邮箱名称: 腾讯企业邮箱:qq 阿里企业邮箱:ai 网易企业邮箱:163 谷歌企业邮箱:google
    """
    self.server = zmail.server(username=username, password=password, config=config)

    def send_single(self, account, content):
    """
    发送单人邮件
    :param account: 邮箱账号
    :param content: 邮件内容
    :return:
    """
    self.server.send_mail(recipients=account, mail=content)

    def send_multiple(self, account: list, content):
    """
    批量发送邮件
    :param account: 邮箱地址 list类型
    :param content: 邮件内容
    :return:
    """
    self.server.send_mail(recipients=account, mail=content)

    def read_email(self):
    """ 读取邮件 """
    mail = self.server.get_latest() # 获取最新邮件
    zmail.show(mail)


    if __name__ == '__main__':
      aa = Email()
      account = ["976076733@qq.com", "976076731@qq.com"]
      mail_conect = {
      "subject": "python发送邮件啦", # 邮件内容标题
      "content_text": "python课堂11111", # 邮件内容
      "headers": rb"D:\python_35\ceshi.jpg", # 邮件附件
      }
      for i in range(5):
      aa.send_single(account="895606xxx@qq.com", content=mail_conect)

      aa.read_email()
  • 相关阅读:
    背景图轮播 响应式 插件 vegas的使用和下载
    (补充)scrapy框架爬取智联招聘信息--上海python工作
    REMOVE A WINDOWS SERVICE
    SQL Server 2008对日期时间类型的改进
    IIS ARR(Application Request Route)与反向代理(Reverse Proxy)
    Jenkins .NET项目持续集成配置
    未找到框架“.NETFramework,Version=v4.5”的引用程序集
    IIS ARR设置HTTP跳转到HTTPS
    怎么学好XXX
    MongoDB
  • 原文地址:https://www.cnblogs.com/pywen/p/14245436.html
Copyright © 2011-2022 走看看