前言
本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了
content_text发送纯文本
先从最简单的发送纯文本的邮件开始,调通发送邮件的代码。
以腾讯的企业邮箱为例,smtp_host是发送邮箱的smtp服务地址,不同的邮箱不太一样。
smtp_host:smtp.exmail.qq.com
smtp_port:465
import zmail
'''
作者:上海-悠悠
QQ交流群:717225969
'''
mail = {
'subject': '邮件主题:Success!', # Anything you want.
'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
}
server = zmail.server('yourname@xxxx.com',
'yourpassword',
smtp_host="smtp.exmail.qq.com",
smtp_port=465)
server.send_mail('2833404xx@qq.com', mail) # 接收着
从上面代码看出,发送邮件的代码也就2句,我们只需关注三个参数
mail 发件的内容,包含主题、正文、附件等
server 发送邮件人的相关信息,如账号,密码,smtp_host, smtp_port
receiver 接收者的邮箱地址
content_html发送html正文
如果发送的正文是html格式的,那就用content_html参数,注意content_text和content_html只能二选一
平常生成的html测试报告,需要发送到邮箱,可以用open函数去读取html正文内容
import zmail
'''
作者:上海-悠悠
QQ交流群:717225969
'''
# html报告地址D:\\aaaa\\result.html
with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f:
content_html = f.read()
mail = {
'subject': '邮件主题:Success!', # Anything you want.
# 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
'content_html': content_html
}
server = zmail.server('yourname@xxxx.com',
'yourpassword',
smtp_host="smtp.exmail.qq.com",
smtp_port=465)
server.send_mail('283340479@qq.com', mail)
也可以自己写html正文内容
content_html = '''
这是一级标题
这是二级标题
这是三级标题
这段是有个段落,可以写很多你要写的内容
'''
mail = {
'subject': '邮件主题:Success!', # Anything you want.
# 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
'content_html': content_html,
'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'], # Absolute path will be better.
}
attachments带附件
把report.html的报告同时放到附件去发送,使用attachments参数,只需传附件的绝对路径就可以了.
传多个附件,放到list里
import zmail
# html报告地址D:\\aaaa\\result.html
with open('D:\\aaaa\\result.html', 'r', encoding="utf-8") as f:
content_html = f.read()
mail = {
'subject': '邮件主题:Success!', # Anything you want.
# 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
'content_html': content_html,
'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better.
}
server = zmail.server('yourname@xxxx.com',
'yourpassword',
smtp_host="smtp.exmail.qq.com",
smtp_port=465)
server.send_mail('2833404xx@qq.com', mail)
正文带图片
正文,如果想发送一个图片,只需知道图片的url地址就可以了,如下个
'
如果是本地的图片,可以转base64后放到img标签,格式
参考代码
content_html='''
这是一张图片
'''
mail = {
'subject': '邮件主题:Success!', # Anything you want.
# 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ', # Anything you want.
'content_html': content_html,
'attachments': ['D:\\aaaa\\result.html','D:\\122.png'], # Absolute path will be better.
}
QQ授权码
如果你的发件邮箱是QQ邮箱,发件人的密码就需要用授权码了,在邮箱设置里面找到授权码
QQ邮箱smtp_host是smtp.qq.com,多个收件人的话,接收者可以用list
server = zmail.server('28yourQQ@qq.com',
'QQ邮件授权码',
smtp_host="smtp.qq.com",
smtp_port=465)
server.send_mail(['2833404xx@qq.com','xx33404xx@qq.com'], mail)