前言
本篇介紹使用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 = '''
<h1>這是一級標題</h1>
<h2>這是二級標題</h2>
<h3>這是三級標題</h3>
<p>這段是有個段落,可以寫很多你要寫的內容</p>
<a href="https://www.cnblogs.com/yoyoketang/">點我,可以跳轉到我的博客</a>
'''
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地址就可以了,如下個
<img src="https://x.xxx.com/xxx.png" width="650" height="340">'
如果是本地的圖片,可以轉base64后放到img標簽,格式
<img src=“data:image/png;base64,***************************************************"/>
參考代碼
content_html='''
<p>這是一張圖片</p>
<img src="https://img2018.cnblogs.com/blog/1070438/201906/1070438-20190622235030004-1865146937.png" alt="yoyo png" width="650" height="340">
'''
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)
更多資料參考前面這篇:https://www.cnblogs.com/yoyoketang/p/11048495.html