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()
  • 相关阅读:
    linux使用jstack来找出死循环的java代码
    Dubbo的几种序列化协议
    上传新项目到GitLab
    PI Network项目,手把手教快速挖Pi币
    Oracle数据导出、导入
    如何实现表单标题两端对齐
    cookie 操作记录& vuex 中页面刷新 state 数据丢失的问题
    FCSAN存储与服务器关联映射后在服务器端如何识别操作
    修改密码报-bash: !@#***": event not found
    springboot整合logstash
  • 原文地址:https://www.cnblogs.com/pywen/p/14245436.html
Copyright © 2011-2022 走看看