python筆記38-使用zmail發各種郵件案例代碼


前言

本篇介紹使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM