• 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()
  • 相关阅读:
    HDOJ线段树专题(A Simple Problem with Integers)
    COJ1183(计算表达式的值)
    理解匈牙利算法求二分匹配
    COJ1143(走迷宫)
    COJ1184格林布的地雷
    POJ2387(Til the Cows Come Home)
    POJ3264(Balanced Lineup)
    调用android手机微博客户端发送微博
    用位来保存信息
    为什么类的成员变量是自身类型时只可以声明
  • 原文地址:https://www.cnblogs.com/pywen/p/14245436.html
Copyright © 2020-2023  润新知