亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

使用 zmail 模塊收發郵件

在前面小節中,我們已經可以使用 Python 內置的 smtplib 與 email 模塊進行郵件內容的構建和各類型郵件內容的發送。但在使用上郵件內容構建的部分還是非常的繁瑣的。那有沒有更簡潔的方式來實現這一功能呢?答案肯定是有的,請看本節課要學習的 zmail 模塊。

1. zmail 模塊介紹

使用 zmail 模塊可以更加便捷的實現發送郵件、接收郵件功能,無需手動添加 - 服務器地址,端口,合適的協議等內容,zmail 都已經完成了這些工作。

zmail 模塊 github 地址:https://github.com/ZYunH/zmail:

zmail 更多特性如下:

  1. 自動查找服務器地址及其端口;
  2. 自動使用合適的協議登錄;
  3. 自動將 Python 字典轉換為 MIME 對象(帶有附件);
  4. 自動添加郵件標題和本地名稱,以避免服務器拒絕您的郵件;
  5. 輕松自定義您的郵件標題;
  6. 支持 HTML 作為郵件內容。

Tips:zmail 僅在 python3 中運行,而無需第三方模塊。不支持 python2。

你可以使用 zmai 進行以下操作:

  1. 作為監控腳本的發送郵件模塊,及時傳遞信息
  2. 嵌入到已有的項目中實現功能
  3. 自定義郵件發送過程,諸如準點發送、定時發送等

zmail 模塊支持的郵件服務器:

服務器地址 發郵件 找回郵件 備注
@163.com ? ? 需要應用專用密碼
@qq.com ? ? POP3 需要應用專用密碼
@126.com ? ? ——
@yeah.com ? ? ——
@gamil.com ? ? 需要應用專用密碼
@sina.com ? ? ——
@outlook.com ? ? 需要應用專用密碼
@hotmail.com ? ? 需要額外的設置

支持的企業郵件服務器:

名稱 用法
騰訊企業郵箱 zmail.server(‘username’,‘psw’,config=‘qq’)
阿里企業郵箱 zmail.server(‘username’,‘psw’,config=‘ali’)
網易企業郵箱 zmail.server(‘username’,‘psw’,config=‘163’)
Google 企業郵件 zmail.server(‘username’,‘psw’,config=‘google’)

2. zmail 模塊使用

zmail 模塊是 Python 的第三方庫,使用前需要通過以下命令進行安裝:

pip install zmail

zmail 安裝完成后,使用之前請確保以下兩點:

  1. 使用的 Python3;
  2. 所使用的郵箱已開啟 SMTP / POP3 服務

zmail 使用步驟如下:

步驟 1:導入 zmail 模塊

import zmail

步驟 2:初始化郵件服務

server = zmail.server('[email protected]', 'mdgxgiwpnkspbxgx')

步驟 3:發送或接收郵件

利用 zmail 模塊封裝好的方法,完成郵件發送或接收郵件操作。

3. 利用 zmail 模塊收發郵件

接下來一起來學習如何通過 zmail 進行發送郵件和接收郵件。

3.1 發送郵件

發送郵件如下代碼所示:

import zmail
mail = {
    'subject': '你有一封新的郵件!', 
    'content_text': '測試內容!'
}
server = zmail.server('[email protected]', 'xlogucqphohxcabi')
server.send_mail("[email protected]", mail)

代碼解釋:通過 zmail.server 構建與郵件服務器通信的 MailServer 對象,構建完成后,通過 send_mail () 方法發送郵件,第一個參數為接收郵件的郵箱,第二個參數為構建好的郵件內容。代碼執行完成后,如下圖所示。

圖片描述

3.2 群發郵件

日常工作中,經常遇到一種場景需要同時發給多名同事,并抄送給領導,此時可以使用 zmeil 實現群發郵件的功能,群發郵件代碼如下所示:

import zmail
mail = {
    'subject': '會議通知', 
    'content_text': '周四上午9點來一層開會!'
}
server = zmail.server('[email protected]', 'xlogucqphohxcabi')
# 發送至收件人和抄送人
server.send_mail(['[email protected]','[email protected]'],mail,cc=['[email protected]'])

代碼解釋:通過 zmail.server 構建與郵件服務器通信的 MailServer 對象,構建完成后,通過 send_mail () 方法發送郵件,第一個參數為接收郵件的郵箱,當需要群發時,這里設置為一個郵箱列表,第二個參數為構建好的郵件內容,第三個參數為要抄送的郵箱。代碼執行完成后,如下圖所示。
圖片描述

3.3 接收郵件

接收郵件如下代碼所示:

import zmail
server = zmail.server('[email protected]', 'xlogucqphohxcabi')
latest_mail = server.get_latest()
# zmail.show(latest_mail)
print(latest_mail["id"])
print(latest_mail["from"])
print(latest_mail["to"])
print(latest_mail["subject"])

代碼解釋:通過 get_latest () 方法獲取最新一封郵件,分別打印郵件 ID、發件人、收件人、郵件標題。當前郵箱郵件如下圖所示。

圖片描述

代碼執行完,輸出結果如下圖所示。

圖片描述

4. 小結

本節課程我們主要學習了 zmail 模塊介紹與安裝。本節課程的重點如下:

  • 了解 zmail 模塊的作用;
  • 掌握 zmail 模塊使用步驟;
  • 掌握 zmail 模塊下郵件發送和接收最新郵件的使用