首页 > 编程语言 >Zmail--让邮件变得简单的python邮件模块

Zmail--让邮件变得简单的python邮件模块

时间:2024-07-16 10:55:10浏览次数:12  
标签:qq -- 发送 python mail zmail com 邮件

其他轮子的缺点:

  • 服务端拒信:首要问题。很多其他的轮子需要自己构造MIME和邮件头(通常优化了过程),但经常遭遇拒信,具体原因是其没有正确的定义邮件头,诸如From和To的头信息在使用SMTP时每家服务商检查都会有细微的差别,以及一些平台的差异(win10 localhost乱码导致发件拒信),甚至在你发往不同的地址检查也会有差别(国内发国外需要额外验证一些信息预防垃圾邮件)。
  • 构造太麻烦:特别是添加附件的时候,有些还需要额外去自定义类型,体验很差。
  • 发送太麻烦:你需要找到你服务商的smtp地址,端口号,有些服务商不是默认的端口(@163.com),有些只能SSL验证(@qq.com),有些需要TLS(@gmailcom),一个不小心就发送失败。
  • 引入过多的外部包:一些轮子引入了好几个包,可能会造成包与原来的程序版本冲突(常见于requests之类的包),并且发生错误无法得到及时的文档支持。在我尝试发送失败后,使用django的email模块成功发送了邮件,但是django的目的显然不是这个,使用一个如此大的框架来实现那么小的需求显然不合理(并且构造过程依然复杂)。
Zmail的优势:
  • 自动填充大多数导致服务端拒信的头信息(From To LocalHost之类的)
  • 将一个字典映射为email,构造信件就像构造字典一样简单
  • 自动寻找邮件服务商端口号地址,自动选择合适的协议(经过认证的)
  • 只依赖于python3,嵌入其他项目时无需烦恼
你可以使用zmail来:
  • 作为监控脚本的发送邮件模块,及时传递信息
  • 嵌入到已有的项目中实现功能
  • 自定义邮件发送过程,诸如准点发送、定时发送等



安装

$ pip3 install zmail

也可以使用pip代替pip3

注意:zmail仅支持python3,不支持python2

简单的例子

  • 使用前注意,所有邮箱都要开启SMTP功能,@163.com和@gmail.com 的邮箱需要额外设定SMTP密码,网上很多信息,具体自行百度google,这里先行省略。

发送邮件 

import zmail
# 你的邮件内容
mail_content = {
    'subject': 'Success!',  # 随便填写
    'content': 'This message from zmail!',  # 随便填写
}

# 将你的邮件编码为MIME实例
mail = zmail.encode_mail(mail_content)
# 使用你的邮件账户名和密码登录服务器
server = zmail.server('[email protected], '你的qq邮箱密码')
# 发送邮件
server.send_mail('[email protected]', mail)
  • 为你的邮件添加附件,修改 你的邮件内容 即可,其他内容同上

# 你的邮件内容
mail_content = {
    'subject': 'Success!',  # 随便填写
    'content': 'This message from zmail!',  # 随便填写
    'attachments': '/Users/zyh/Documents/example.zip',  # 最好使用绝对路径,若你电脑没有这个文件会造成错误
}

给多个信箱发件,修改 发送邮件 即可,其他内容同上 

# 发送邮件
server.send_mail(['[email protected]','[email protected]'], mail)
  • 添加额外的头信息,直接加入到mail_content即可

 认证过的服务商列表:

地址SMTP
@qq.com
@126.com
@yeah.net
@gmail.com
@sina.com
@163.com

不在此列表也无需担心,经过测试,目前尚未发现不支持的邮件服务商,如果遇到问题请及时联系作者(本平台或github)

更多 

zmail的POP3功能正在测试中,API设计尚未确定,所以暂时不表。

标签:qq,--,发送,python,mail,zmail,com,邮件
From: https://blog.csdn.net/m0_71791722/article/details/140432349

相关文章

  • 【Chatgpt大语言模型医学领域中如何应用】
    随着人工智能技术AI的不断发展和应用,ChatGPT作为一种强大的自然语言处理技术,无论是自然语言处理、对话系统、机器翻译、内容生成、图像生成,还是语音识别、计算机视觉等方面,ChatGPT都有着广泛的应用前景。特别在临床医学领域,通过和ChatGPT相结合,更能为医疗行业带来了......
  • mac安装redis详细步骤
    一、官网链接下载https://redis.io/download解压redis-3.0.7.tar.gz,拷贝到任意目录,例如/usr/local/执行解压命令:tarxzfredis-3.0.7.tar.gz二、终端安装编译和安装跳转到“cd/usr/local/redis/”,然后编译,安装make安装后执行makeinstall,基本安装完,配置都......
  • 一起来学习孟德尔随机化临床医学SCI发表吧!!!
    如今,临床科研工作者面对越来越重的科研压力,以及越来越高的SCI文章要求,如何才能在不进实验室、不做基础科研的前提下,利用好各种公共数据资源快速发表SCI论著?这是一个困绕每一个临床科研医生的话题。真正的随机对照临床研究(RCT)往往费时,费力,费钱。因此,当前科研的热点之......
  • 电磁波类传感器原理
     毫米波雷达、激光雷达、热成像相机以及可见光相机都是接收电磁波的传感器,本质上他们都属于电磁波类传感器。电磁波有波粒二相性,波长越长,波动性越强,探测范围越广,绕射能力越强,能量越低。需要说明一点,这类传感器中,粒子描述物体的尺度是很小的,波描述物体的尺度是较大的,所以粒子性......
  • 使用Project进行项目管理
    前面当项目经理的时候曾经用到过Project来进行项目管理。这些天闲着无事,将代码翻出来留念了一下,现在将Project项目管理的东西也翻出来玩玩。微软的Project是一款不错的软件,经过微软这么些年的不断的开发,应该说已经基本完善了。初次接触Project是用的2007版本,这次介绍的......
  • linux命令
    centos7的命令1.目录切换命令语法:cd[切换的目录]切换到上一级目录:cd../切换到根目录:cd/2.查看目录下的内容ls[参数][目录]参数:-a所有隐藏的列出-l列表3.查看当前所在的目录。4.创建文件命令touch创建文件>5.创建目录命令......
  • 记一次Burp与NEW_xp_CAPTCHA工具联动爆破验证码
    首先下载NEW_xp_CAPTCHA工具地址:https://github.com/smxiazi我下载的是大佬直接发布的打包好的环境,包括对应python3.6.6与NEW_xp_CAPTCHA工具脚本下载完后直接点击运行即可本地访问http://127.0.0.1:8899/,看到这个页面,证明没问题然后就是burp导入插件jar。这里要下载xp_CA......
  • 【2024-07-15】欠债人生
    23:59如果你在这世上、在你自身之外去寻找幸福,那任何东西都不会有幸福的影子。对于幸福,我们既不能争论,也无法预测,此时此刻拥有的幸福才是幸福。如果幸福看似还在未来,那就停下来想一想,因为你已经拥有它了。有希望就是一种幸福。                ......
  • [FlareOn4]IgniteMe
    无壳,32位先进入ida,可以看到start函数,重要的就是4010F0()和if判断里的401050()先进入4010F0其中的一个函数,表示的是获取字符串长度(遇到null字符就返回i)后面就是将字符写入byte_403078这个数组接下来看401050(),可以看到获取长度后,执行了一个401000,然后让数组从末尾开始和v4......
  • 暑期特训——2023河南省赛
    A(模拟)题目大意输入输出题目思路枚举下标i,从左往右枚举,直到出现重复字符判断s[i+1:]是否是回文串注意:题目中说a和b是非空的题目代码fromsysimportstdin,setrecursionlimitsetrecursionlimit(100000)input=lambda:stdin.readline().strip()r1=lambda:......