最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python第三方庫發(fā)送電子郵件的示例代碼

 更新時(shí)間:2021年12月28日 08:29:47   作者:華仔仔coding  
本文主要介紹了使用Python第三方庫發(fā)送電子郵件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Python 作為當(dāng)前最熱門的編程語言之一,不僅僅是因?yàn)樗膶W(xué)習(xí)成本低、入門容易,還因?yàn)樗哂胸S富的生態(tài)環(huán)境,包括內(nèi)置的模塊以及第三方的庫,使用它能夠做很多事情。例如,辦公自動(dòng)化也是 Python 涉及的領(lǐng)域之一,如果能夠用好 Python, 能夠顯著提高我們的工作效率。

今天我們就來學(xué)習(xí),如何使用 Python 發(fā)送電子郵件。

1. 安裝 yagmail 第三方庫

首先,我們來安裝一個(gè)第三方庫,yagmail 模塊。這個(gè)庫實(shí)現(xiàn)了發(fā)送電子郵件的功能,因此,我們需要進(jìn)行安裝??梢酝ㄟ^ pip 命令進(jìn)行安裝,命令如下:

pip install yagmail -i https://mirrors.aliyun.com/pypi/simple/

2. 開啟 POP3、IMAP 和 SMTP 服務(wù)

那么在安裝完模塊之后,我們還需要在郵箱平臺進(jìn)行相應(yīng)地設(shè)置,那為什么要設(shè)置呢?大家想一下,我們平時(shí)發(fā)送郵件都是在郵箱平臺編輯發(fā)送的,那么現(xiàn)在我們要使用 Python 的第三方模塊操控我們的郵箱,進(jìn)行發(fā)送郵件。這個(gè)時(shí)候就需要郵箱平臺給予 Python 的第三方模塊權(quán)限了啊,讓它代替郵箱平臺進(jìn)行發(fā)送郵件。
因此,我們需要在郵箱平臺上進(jìn)行設(shè)置,開啟對應(yīng)的協(xié)議以及第三方授權(quán)(需要手機(jī)短信驗(yàn)證、QQ 安全驗(yàn)證中心等等)。所以,下面我們需要對開啟的協(xié)議做一個(gè)簡單的介紹,之后再帶著大家開啟協(xié)議以及第三方授權(quán)。

2.1 POP3、IMAP 和 SMTP 簡介

POP3: 即 Post Office Protocol3,意思就是郵局協(xié)議第三個(gè)版本。這個(gè)協(xié)議規(guī)定了將個(gè)人計(jì)算機(jī)連接到 Internet 的郵件服務(wù)器和下載電子郵件的電子協(xié)議,幫助用戶登錄、取郵件和刪除郵件等。
IMAP: 即 Internet Message Access Protocol, 意思就是郵件訪問協(xié)議。它和 POP3 都是郵件訪問最為普遍的 Internet 標(biāo)準(zhǔn)協(xié)議。它與 POP3 協(xié)議的主要區(qū)別是用戶可以不用把所有的郵件全部下載,可以通過客戶端直接對服務(wù)器上的郵件進(jìn)行操作。
SMTP: 即 Simple Mail Transfer Protocol, 意思就是簡單郵件傳輸協(xié)議。它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式,幫助每臺計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地址。

2.2 開啟 POP3、IMAP、和 SMTP 協(xié)議

了解了 POP3、IMAP 和 SMTP 協(xié)議之后,接下來我們就要開啟郵箱的 POP3、IMAP 和 SMTP 協(xié)議了。下面我以網(wǎng)易 163 郵箱為例進(jìn)行演示,步驟如下:
登錄 163 郵箱平臺 -> 點(diǎn)擊設(shè)置 -> 開啟服務(wù) -> 開啟 IMAP/SMTP 服務(wù) -> 開啟 POP3/SMTP 服務(wù)。
當(dāng)然,在操作的過程中會涉及到發(fā)送短信驗(yàn)證碼,大家只要跟著提示一步一步操作就行,使用微信掃描二維碼就可以自動(dòng)編輯信息,然后選擇發(fā)送即可。
下面,給出具體清晰的圖文教程:

第一步,點(diǎn)擊設(shè)置 -> POP3/SMTP/IMAP

在這里插入圖片描述

第二步,開啟服務(wù) -> 開啟 IMAP/SMTP 服務(wù)

在這里插入圖片描述

點(diǎn)擊 “繼續(xù)開啟”

在這里插入圖片描述

使用微信掃描二維碼,發(fā)送短信之后,再點(diǎn)擊 “我已發(fā)送”

在這里插入圖片描述

復(fù)制并記住授權(quán)密碼,這個(gè)后面登錄郵箱要用到,之后點(diǎn)擊 “確定”

在這里插入圖片描述

第三步,開啟服務(wù) -> 開啟 POP3/SMTP 服務(wù)

在這里插入圖片描述

點(diǎn)擊 “確定” 即可

在這里插入圖片描述

最后,經(jīng)過一系列的操作之后,我們就將 POP3、IMAP 和 SMTP 服務(wù)成功打開了,下面就準(zhǔn)備進(jìn)入到寫 Python 代碼的環(huán)節(jié)!

3. 發(fā)送郵件

3.1 發(fā)送第一封電子郵件

發(fā)送一封電子郵件的過程,需要發(fā)送方的賬號、密碼以及 SMTP 服務(wù)器域名,收件人的賬號、郵件標(biāo)題、郵件內(nèi)容以及附件等等。值得注意的是,這里提到的發(fā)件人密碼并不是我們平時(shí)登錄郵箱平臺的密碼哦,而是我們在 2.2 小節(jié)中開啟 IMAP/SMTP 服務(wù)時(shí),得到的授權(quán)密碼,我之前說過要復(fù)制存儲下來的,就是在這個(gè)時(shí)候要用到啦!
OK 廢話不多說了, 下面直接給出一段發(fā)送第一封郵件的具體代碼:

import yagmail
# yagmail.SMTP(user='發(fā)件人郵箱賬號', password='授權(quán)碼', host='SMTP 服務(wù)器域名')
yag = yagmail.SMTP(user='xxx@163.com', password='xxxxxx', host='smtp.163.com')
contents = 'hello, this is the first email'   # 郵件內(nèi)容
subject = '第一封郵件'                          # 郵件主題
receiver = 'xxx@qq.com'                       # 接收方郵箱賬號
yag.send(receiver, subject, contents)         
yag.close()
print('發(fā)送成功')

代碼解析:

  • 使用 yagmail 第三方模塊發(fā)送郵件非常簡單。首先,調(diào)用 yagmail.SMTP() 方法指定發(fā)送方賬號、授權(quán)碼 和 SMTP 服務(wù)器域名, 登錄到郵箱系統(tǒng)中。之后,使用 yag.send() 方法將接收方,主題和內(nèi)容分別傳送到對應(yīng)的參數(shù)位置即可。
  • 發(fā)送完成之后,記得使用 yag.close() 退出登錄狀態(tài),釋放資源。
  • password 一定要小心存放,不要泄露,否則別人就相當(dāng)于拿到了你的郵箱密碼。

那么,我們可以運(yùn)行這段代碼。運(yùn)行完成之后,看一下我的郵箱確實(shí)收到了剛才的郵件,截圖如下所示:

在這里插入圖片描述

大家可以看到,確實(shí)收到了郵件,這表明發(fā)送第一封郵件成功啦!
補(bǔ)充:

剛才我們說了授權(quán)密碼一定要小心存放。那如何做才算“小心”呢?最好是授權(quán)密碼不要出現(xiàn)在代碼中,因此,我們可以將授權(quán)密碼存儲在系統(tǒng)中,每次登錄時(shí)能夠不用顯式填寫授權(quán)密碼。操作過程如下:
首先,打開 Python 交互式環(huán)境,例如 IDLE 或者 Anaconda,如果使用的是 PyCharm,那么可以調(diào)出 Python Console:

在這里插入圖片描述

然后,在命令行分別輸入如下命令:

import yagmail
# yagmail.register(郵箱賬號, 授權(quán)密碼)
yagmail.register('xxx@126.com', 'xxx')

這樣,就可以將授權(quán)密碼存儲在系統(tǒng)中,一定程度上保證了授權(quán)密碼的安全性。在之后的代碼中,我就可以不用將 password 傳入到 yagmail.SMTP() 方法的參數(shù)中。

3.2 群發(fā)郵件

那么通過上一小節(jié)的學(xué)習(xí),我們掌握了如何發(fā)送第一封電子郵件。但是,在日常使用中,我們常常需要發(fā)送通知之類的郵件,這類郵件往往接收方是多個(gè)的,不止一個(gè)接收方。下面我們再來看一下,當(dāng)我需要群發(fā)郵件的時(shí)候,是如何做的。
老規(guī)矩,直接貼代碼:

import yagmail

# yagmail.SMTP(user='發(fā)件人郵箱賬號', host='SMTP 服務(wù)器域名')
yag = yagmail.SMTP(user='xxx@163.com', host='smtp.163.com')
contents = 'Happy New Year'   # 郵件內(nèi)容
subject = '新年快樂'                          # 郵件主題
receivers = ['xxx@qq.com', 'xxx@126.com', 'xxx@163.com']  # 接收方們的郵箱賬號
yag.send(receivers, subject, contents)         
yag.close()
print('發(fā)送成功')

代碼解析:
大家可以看到,群發(fā)郵件的代碼和上一小節(jié)的代碼,不同的地方就是接收方。群發(fā)郵件肯定意味著有一個(gè)或多個(gè)收件人,因此我只需要定義一個(gè)接收方列表 receivers, 將多個(gè)接收方的賬號放在列表里,隨便你放多少個(gè)都可以。之后再將這個(gè)列表作為參數(shù)放到 yag.send() 方法中,就可以實(shí)現(xiàn)群發(fā)郵件的目的了,就是這么簡單!

3.3 給郵件添加附件

在發(fā)送郵件時(shí),我們經(jīng)常需要用到附件。例如,我們上交方案給公司領(lǐng)導(dǎo)時(shí),將方案作為郵件的附件發(fā)送給領(lǐng)導(dǎo)審查,領(lǐng)導(dǎo)收到郵件后打開附件進(jìn)行預(yù)覽或下載。具體的代碼如下所示:

import yagmail
# yagmail.SMTP(user='發(fā)件人郵箱賬號', password='授權(quán)碼', host='SMTP 服務(wù)器域名')
yag = yagmail.SMTP(user='xxx@163.com', host='smtp.163.com')
contents = 'Happy New Year'   # 郵件內(nèi)容
subject = '新年快樂'                          # 郵件主題
receivers = ['xxx@qq.com', 'xxx@126.com', 'xxx@163.com']  # 接收方們的郵箱賬號
attachments = [r'C:\Users\Desktop\設(shè)計(jì)方案一.docx', r'C:\Users\Desktop\設(shè)計(jì)方案二.docx', r'C:\users\Desktop\匯報(bào).pptx']
# yag.send(接收方,主題,內(nèi)容,附件)
yag.send(receivers, subject, contents, attachments)
yag.close()
print('發(fā)送成功')

代碼解析:
在上面的代碼中,相比之前兩個(gè)小節(jié)的代碼,我們增加了一個(gè) attachments 變量,這是一個(gè)列表類型的變量,存放著附件在我們計(jì)算機(jī)上的位置以及名稱。當(dāng)有多個(gè)附件時(shí),我們可以將多個(gè)附件的名稱統(tǒng)統(tǒng)存放到列表中。之后,使用 yag.send() 方法,可以看到 attachments 放在最后一個(gè)參數(shù)的位置。

3.4 設(shè)置定時(shí)器

下面我們再進(jìn)階一下,對我們的郵件發(fā)送設(shè)置定時(shí)器,使得可以定時(shí)發(fā)送郵件。這里關(guān)鍵就是定時(shí)器功能的調(diào)用,需要我們安裝 schedule 模塊,這個(gè)模塊含有很多關(guān)于調(diào)度以及定時(shí)相關(guān)的方法。安裝命令如下

pip install schedule -i https://mirrors.aliyun.com/pypi/simple/

定時(shí)器和鬧鐘一樣,你可以設(shè)置 day、week、hour、mintues、second, 設(shè)定定時(shí)觸發(fā)函數(shù)執(zhí)行任務(wù)。在這里就是定時(shí)觸發(fā)函數(shù),定時(shí)發(fā)送郵件。具體代碼如下所示:

import time
import yagmail
import schedule

# yagmail.SMTP(user='發(fā)件人郵箱賬號', password='授權(quán)碼', host='SMTP 服務(wù)器域名')
yag = yagmail.SMTP(user='xxx@163.com', host='smtp.163.com')
def message():
    contents = '早安朋友,新的一周開始啦!'         # 郵件內(nèi)容
    subject = '早安'                            # 郵件主題
    receivers = ['xxx@qq.com', 'xxx@126.com']  # 接收方們的郵箱賬號
    attachments = [r'C:\Users\\Desktop\早安.jpg', r'C:\Users\Desktop\早安.png']
    yag.send(receivers, subject, contents, attachments)
    print('發(fā)送成功')

# 設(shè)定時(shí)間:每周星期一早上7點(diǎn)鐘發(fā)送郵件
schedule.every().monday.at('07:00').do(message)
while True:
    schedule.run_pending()
    time.sleep(3)
yag.close()

代碼解析:

定義 message() 函數(shù),實(shí)現(xiàn)指定發(fā)送郵件的內(nèi)容、主題、附件、接收方。

schedule.every() 后面可以是 day、hour、week、monday、tuesday、wednesday 等等,在上面的代碼中,意思就是每周星期一早上7點(diǎn)發(fā)送郵件。例如,如果想要實(shí)現(xiàn)每隔 30 秒發(fā)送郵件,可以寫成 schedule.every().minute.at(":30").do(message)

while True 表示一個(gè)死循環(huán),因?yàn)槲覀円竺恐芤话l(fā)送郵件,所以一直處于一個(gè)監(jiān)控的狀態(tài),時(shí)間一到就執(zhí)行任務(wù)。schedule.run_pending() 表示運(yùn)行所有任務(wù)。

4. 總結(jié)

以上就是關(guān)于使用 Python 第三方庫發(fā)送電子郵件的一個(gè)入門的教程,是不是很簡單呢?如果想要實(shí)現(xiàn)更加復(fù)雜的功能,還需要到官網(wǎng)了解第三方庫的更多教程,學(xué)無止境,這只是一個(gè)入門示范的教程!
總之,Python 可以用更少的代碼做更多的事情!

到此這篇關(guān)于使用 Python 第三方庫發(fā)送電子郵件的文章就介紹到這了,更多相關(guān)使用 Python 第三方庫發(fā)送電子郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬取51job中hr的郵箱

    python爬取51job中hr的郵箱

    這篇文章主要為大家詳細(xì)介紹了python爬取51job中hr的郵箱的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 使用PyTorch實(shí)現(xiàn)MNIST手寫體識別代碼

    使用PyTorch實(shí)現(xiàn)MNIST手寫體識別代碼

    今天小編就為大家分享一篇使用PyTorch實(shí)現(xiàn)MNIST手寫體識別代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python庫skimage給灰度圖像染色的方法示例

    python庫skimage給灰度圖像染色的方法示例

    這篇文章主要介紹了python庫skimage給灰度圖像染色的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 詳解Python3.1版本帶來的核心變化

    詳解Python3.1版本帶來的核心變化

    這篇文章主要介紹了詳解Python3.1版本帶來的核心變化,Python3.1的版本升級在3.0的基礎(chǔ)上帶來了更多影響以后版本的變化,本文分析了其中一些常用功能的改變,如Maketrans函數(shù)等,需要的朋友可以參考下
    2015-04-04
  • Python環(huán)境下安裝PyGame和PyOpenGL的方法

    Python環(huán)境下安裝PyGame和PyOpenGL的方法

    這篇文章主要介紹了Python環(huán)境下安裝PyGame和PyOpenGL的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python實(shí)現(xiàn)人工蜂群算法的示例代碼

    Python實(shí)現(xiàn)人工蜂群算法的示例代碼

    ABC,即人工蜂群算法(Artificial?Bee?Colony?Algorithm),由Karaboga等人提出,這篇文章主要介紹了人工蜂群算法的概念與Python實(shí)現(xiàn),感興趣的可以了解一下
    2023-08-08
  • Linux添加Python?path方法及修改環(huán)境變量的三種方法

    Linux添加Python?path方法及修改環(huán)境變量的三種方法

    這篇文章主要介紹了Linux添加Python?path方法及修改環(huán)境變量的三種方法,Linux 下設(shè)置環(huán)境變量有三種方法,一種用于當(dāng)前終端,一種用于當(dāng)前用戶,一種用于所有用戶,本文對每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析

    python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析

    這篇文章主要介紹了python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析,有需要的朋友可以借鑒參考,希望可以對廣大一同學(xué)習(xí)的讀者朋友有所幫助
    2021-09-09
  • Python實(shí)現(xiàn)提取谷歌音樂搜索結(jié)果的方法

    Python實(shí)現(xiàn)提取谷歌音樂搜索結(jié)果的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)提取谷歌音樂搜索結(jié)果的方法,涉及Python針對谷歌音樂相關(guān)信息的獲取技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 一文詳解python如何將編寫的模塊打包上傳至pypi

    一文詳解python如何將編寫的模塊打包上傳至pypi

    我們此前花了很大功夫?qū)懥艘粋€(gè)極其簡單的web框架myWeb,想要給別人用的時(shí)候,需要讓別人拷貝源代碼才行,這太low了,所以本篇文章會介紹如何將自己寫的模塊打包上傳至pypi,以便讓需要的人通過pip進(jìn)行安裝,感興趣的同學(xué)可以參考閱讀
    2023-05-05

最新評論

汝州市| 武冈市| 勃利县| 德昌县| 乌拉特前旗| 襄樊市| 哈巴河县| 铜梁县| 南京市| 广东省| 时尚| 阿城市| 襄城县| 光山县| 龙南县| 泰安市| 阳山县| 蒲江县| 徐州市| 肃宁县| 梁平县| 海阳市| 嘉鱼县| 涟水县| 枣强县| 乌兰浩特市| 诸城市| 宝应县| 邯郸市| 无极县| 斗六市| 永宁县| 洛扎县| 扎赉特旗| 遂昌县| 白城市| 海盐县| 皋兰县| 聂拉木县| 南华县| 大余县|