欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)郵件發(fā)送功能的方法詳解

 更新時間:2022年05月23日 16:16:53   作者:渴望力量的哈士奇  
本文將學(xué)會各種類型的郵件發(fā)送方式,比如普通文本郵件、帶附件的郵件等等,如何通過程序發(fā)送郵件現(xiàn)在我們還不太了解,接下來就會為大家進行詳細的介紹

郵件自動化篇章所需的新模塊:

smtplib 郵件協(xié)議與發(fā)送模塊

email 內(nèi)容定義模塊

schedule 定時模塊

smtplib 與 email 模塊 可以幫助我們正常的發(fā)送郵件; schedule 模塊可以幫助我們定時發(fā)送郵件,比如工資郵件等需要固定時間發(fā)送的郵件

利用 python 發(fā)送普通郵件

認識發(fā)送郵件流程

這里簡單描述下發(fā)郵件的過程(說實話,這一步我有點不想寫)

第一步:登錄郵箱

第二步:書寫郵件接受者的郵箱

第三步:書寫郵件標題與內(nèi)容(有的時候還需要添加附件)

第四步:發(fā)送郵件

認識郵件協(xié)議

  • smtp:郵件發(fā)送的協(xié)議
  • pop3:郵件接收的協(xié)議

什么是協(xié)議?

協(xié)議就是一種規(guī)則,其已經(jīng)被底層網(wǎng)絡(luò)封裝好。無需關(guān)心它的具體規(guī)則是什么,直接使用上層工具即可。

比如發(fā)送郵件這個場景,當我們使用 smtp 協(xié)議發(fā)送郵件時。網(wǎng)絡(luò)發(fā)現(xiàn)是 smtp 協(xié)議,它就知道這是一封要發(fā)送出去的郵件;同樣 pop3 也是一樣的,當網(wǎng)絡(luò)發(fā)現(xiàn)這是 pop3 協(xié)議 就知道這是一封要接收的郵件。

smtplib 模塊

smtplib 模塊是 python 中 發(fā)送郵件的很重要的模塊之一。

創(chuàng)建協(xié)議對象:

smptObj = smptlib.SMTP() 通過 smptlib.SMTP() 生成 smpt 協(xié)議對象

創(chuàng)建鏈接:

smptObj.connect(smpt服務(wù)器地址, 25) 通過 connect(服務(wù)器IP地址, 端口號),smpt服務(wù)默認端口號為 25

登錄驗證:

smptObj.login(mail_user, mail_password) 通過 login(mail_user, mail_password) 傳入郵箱名稱、登錄密碼,完成驗證。(注意:部分郵箱服務(wù)器這里傳入的是口令而不是登錄密碼[也叫做授權(quán)碼],在郵箱的設(shè)置里面查看)

發(fā)送郵件:

smptObj.sendmail(sender, receivers, message) 通過 sendmail(sender, receivers, message) 傳入發(fā)送者的郵箱、接收者的郵箱、郵件內(nèi)容即可完成發(fā)送郵件的動作。

PS:這里可以看到 "接收者的郵箱是 'receivers' 復(fù)數(shù)" ,所以 "接收者郵箱" 是一個數(shù)組、列表,可以發(fā)送給多個人; 消息內(nèi)容的 "message" 是消息對象的加密字符串

email 包

email包 有兩個比較常用的函數(shù):

函數(shù)名參數(shù)說明
MIMEText郵件內(nèi)容、郵件類型、編碼格式定義郵件發(fā)送內(nèi)容的對象
Header各類信息、編碼格式將各類信息定義成對象,比如標題等。

PS:上文提到的 ""message" 是消息對象的加密字符串" 就是通過 "MIMEText" 加密生成的

發(fā)送郵件小案例

代碼示例如下:

# coding:utf-8

import smtplib

from email.mime.text import MIMEText
from email.header import Header

'''
第三方的 smpt [腳本中涉及的郵箱地址都是假的,請使用自己的真實郵箱地址進行測試]
'''

mail_host = "smtp.sina.com"     # 設(shè)置郵箱服務(wù)器
mail_user = "conan868242"       # 設(shè)置自己的郵箱
mail_pass = "cb997b01a87232b2"  # 這里就是郵箱的口令,也就是授權(quán)碼;不是密碼。

sender = "conan868242@sina.com"     # 定義發(fā)送者郵箱(其實就是自己)
receivers = ["3241716373@qq.com"]   # 定義接受者郵箱(可以是多個接收者)

message = MIMEText("這是一封測試郵件 O(∩_∩)O哈哈~", "plain", "utf-8")     # 定義郵件內(nèi)容;"plain"是格式,表示是普通的文件內(nèi)容

message["From"] = Header(sender)                            # 在message內(nèi)定義發(fā)送信息 --> 發(fā)送者
message["Subject"] = Header("Python 測試郵件發(fā)送", "utf-8")   # 在message內(nèi)定義發(fā)送信息的標題
print("加密后的發(fā)送內(nèi)容\n", message.as_string())      # 打印輸出加密后的發(fā)送內(nèi)容

try:    # 捕獲發(fā)送郵件的異常
    smtpObj = smtplib.SMTP()             # 實例化 SMTP 協(xié)議對象
    smtpObj.connect(mail_host, 25)       # 鏈接 SMTP 服務(wù)器
    smtpObj.login(mail_user, mail_pass)  # 登錄郵箱驗證
    smtpObj.sendmail(sender, receivers, message.as_string())    # 發(fā)送郵件; "message" 通過 "as_string()" 進行發(fā)送內(nèi)容字符串的加密
except smtplib.SMTPException as error:
    print("error:{}".format(error))

PS:不要嘗試用這個源碼運行了,我已經(jīng)將授權(quán)碼改了。

運行結(jié)果如下:

發(fā)送郵件的避坑總結(jié)

發(fā)送者郵箱開通 smtp 與 pop3 的訪問許可

不同的郵箱需要的驗證方式不同(有的是登錄密碼,有的是授權(quán)碼)

有些郵箱開通授權(quán)的訪問許可和授權(quán)碼可能會收費,這里需要注意一下(比如 QQ 郵箱 [給個差評])

到此這篇關(guān)于Python實現(xiàn)郵件發(fā)送功能的方法詳解的文章就介紹到這了,更多相關(guān)Python郵件發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的通函數(shù)numpy.ufunc詳解

    Python中的通函數(shù)numpy.ufunc詳解

    這篇文章主要介紹了什么是通函數(shù)numpy.ufunc,簡單說就是numpy的函數(shù),因為numpy針對的是數(shù)組張量,因此,幾乎每一個函數(shù)都是ufunc。本文針對ufunc的屬性進行研究,需要的朋友可以參考下
    2023-04-04
  • 基于opencv對高空拍攝視頻消抖處理方法

    基于opencv對高空拍攝視頻消抖處理方法

    這篇文章主要介紹了基于opencv對高空拍攝視頻消抖處理,首先對視頻進行抽第一幀與最后一幀,為什么抽取兩幀?這樣做的主要目的是,我們在做幀對齊時,使用幀中靜態(tài)物的關(guān)鍵點做對齊,需要的朋友可以參考下
    2022-10-10
  • Python寫的一個簡單DNS服務(wù)器實例

    Python寫的一個簡單DNS服務(wù)器實例

    這篇文章主要介紹了Python寫的一個簡單DNS服務(wù)器實例,需要的朋友可以參考下
    2014-06-06
  • python實現(xiàn)小世界網(wǎng)絡(luò)生成

    python實現(xiàn)小世界網(wǎng)絡(luò)生成

    今天小編就為大家分享一篇python實現(xiàn)小世界網(wǎng)絡(luò)生成,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python生成圖文并茂的PDF報告的方法詳解

    Python生成圖文并茂的PDF報告的方法詳解

    reportlab是Python的一個標準庫,可以畫圖、畫表格、編輯文字,最后可以輸出PDF格式。本文將利用reportlab模塊生成圖文并茂的PDF報告,感興趣的可以了解一下
    2022-06-06
  • 詳解Python傳入?yún)?shù)的幾種方法

    詳解Python傳入?yún)?shù)的幾種方法

    這篇文章主要介紹了Python傳入?yún)?shù)的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于Python PaddleSpeech實現(xiàn)語音文字處理

    基于Python PaddleSpeech實現(xiàn)語音文字處理

    PaddleSpeech基于飛槳PaddlePaddle的語音方向的開源模型庫,用于語音和音頻中的各種關(guān)鍵任務(wù)的開發(fā),包含大量基于深度學(xué)習(xí)前沿和有影響力的模型。本文將介紹如何通過PaddleSpeech實現(xiàn)語音文字處理,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • QML使用Python的函數(shù)過程解析

    QML使用Python的函數(shù)過程解析

    這篇文章主要介紹了QML使用Python的函數(shù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • python調(diào)用API接口實現(xiàn)登陸短信驗證

    python調(diào)用API接口實現(xiàn)登陸短信驗證

    在本篇文章里小編給大家整理的是關(guān)于python調(diào)用API接口實現(xiàn)登陸短信驗證的實例內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • Python3實現(xiàn)的簡單三級菜單功能示例

    Python3實現(xiàn)的簡單三級菜單功能示例

    這篇文章主要介紹了Python3實現(xiàn)的簡單三級菜單功能,涉及Python用戶交互以及針對json格式數(shù)據(jù)的遍歷、讀取、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03

最新評論