chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用Python發(fā)送郵件的 3 種方式

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 前言

郵件,作為最正式規(guī)范的溝通方式,在日常辦公過程中經常被用到

我們都知道 Python內置了對 SMTP 的支持,可以發(fā)送純文本、富文本、HTML 等格式的郵件

本文將聊聊利用 Python 發(fā)送郵件的 3 種方式

2. 準備

以 126 郵箱為例,在編碼之前,我們需要開啟 SMTP 服務

然后,手動新增一個授權碼

其中,賬號、授權碼和服務器地址用于連接登錄郵箱服務器

3. 方式一:smtplib

smtplib是 Python 自帶的依賴庫,可以直接導入使用

首先,通過郵箱賬號、授權碼、郵箱服務器地址初始化一個 SMTP 實例,然后進行連接

def __init__(self):
    # 初始化
    self.smtp = smtplib.SMTP()

    # 連接郵箱服務器地址
    self.smtp.connect('smtp.126.com')

    # 加入主題和附件,郵件體
    self.email_body = MIMEMultipart('mixed')

    # 發(fā)件人地址及授權碼
    self.email_from_username = '**@126.com'
    self.email_from_password = '授權碼'

# 登錄
self.smtp.login(self.email_from_username, self.email_from_password)

然后,將收件人列表、郵件標題、郵件正文內容、附件路徑及附件文件名加入到上面定義的郵件體中

def generate_email_body(self, email_to_list, email_title, email_content, attchment_path, files):
    """
    組成郵件體
    :param email_to_list:收件人列表
    :param email_title:郵件標題
    :param email_content:郵件正文內容
    :param attchment_path:附件的路徑
    :param files:附件文件名列表
    :return:
    """
    self.email_body['Subject'] = email_title
    self.email_body['From'] = self.email_from_username
    self.email_body['To'] = ",".join(email_to_list)

    for file in files:
        file_path = attchment_path + '/' + file
        if os.path.isfile(file_path):
            # 構建一個附件對象
            att = MIMEText(open(file_path, 'rb').read(), 'base64', 'utf-8')
            att["Content-Type"] = 'application/octet-stream'
            att.add_header("Content-Disposition", "attachment", filename=("gbk", "", file))
            self.email_body.attach(att)

    text_plain = MIMEText(email_content, 'plain', 'utf-8')
    self.email_body.attach(text_plain)

接著,就可以使用 SMTP 實例對象,將郵件發(fā)送出去

# 收件人列表
email_to_list = ['收件人1地址','收件人2地址']

# 發(fā)送郵件
# 注意:此處必須同時指定發(fā)件人與收件人,否則會當作垃圾郵件處理掉
self.smtp.sendmail(self.email_from_username, email_to_list, self.email_body.as_string())

郵件發(fā)送完畢之后,退出服務即可

def exit(self):
    """
    退出服務
    :return:
    """
    self.smtp.quit()

4. 方式二:zmail

Zmail 項目創(chuàng)建目的是,使郵件處理變得更簡單

使用 Zmail 發(fā)送接收郵件方便快捷,不需要手動添加服務器地址、端口以及適合的協(xié)議,可以輕松創(chuàng)建 MIME 對象和頭文件

注意:Zmail 僅支持 Python3,不支持 Python2

首先,安裝依賴庫

# 安裝依賴庫
pip3 install zmail

然后,使用郵箱賬號、授權碼創(chuàng)建一個郵箱服務對象

class ZMailObject(object):

    def __init__(self):
        # 郵箱賬號
        self.username = '**@126.com'

        # 郵箱授權碼
        self.authorization_code = '授權碼'

        # 構建一個郵箱服務對象
        self.server = zmail.server(self.username, self.authorization_code)

接著,將郵件主題、郵件內容、包含的附件路徑加入到一個字典中,組成郵件主體

# 郵件主體
mail_body = {
        'subject': '測試報告',
        'content_text': '這是一個測試報告',  # 純文本或者HTML內容
        'attachments': ['./attachments/report.png'],
}

最后,將調用send_mail()函數(shù),將郵件發(fā)送出去即可

# 收件人
# 可以指定一個人,字符串;也可以是多個人,列表
mail_to = "收件人1"

# 發(fā)送郵件
self.server.send_mail(mail_to, mail_body)

5. 方式三:yagmail

yagmail 只需要幾行代碼,就能實現(xiàn)發(fā)送郵件的功能

相比 zmail,yagmail 實現(xiàn)發(fā)送郵件的方式更加簡潔優(yōu)雅

首先,安裝依賴庫

# 安裝依賴庫
pip3 install yagmail

然后,通過賬號、授權碼和服務器地址連接郵箱服務器,返回一個服務對象

import yagmail

# 連接服務器
# 用戶名、授權碼、服務器地址
yag_server = yagmail.SMTP(user='**@126.com', password='授權碼', host='smtp.126.com')

接著,通過 send() 函數(shù),將郵件發(fā)送出去

# 發(fā)送對象列表
email_to = ['**@qq.com', ]
email_title = '測試報告'
email_content = "這是測試報告的具體內容"
# 附件列表
email_attachments = ['./attachments/report.png', ]

# 發(fā)送郵件
yag_server.send(email_to, email_title, email_content, email_attachments)

郵件發(fā)送完畢之后,關閉連接即可

# 關閉連接
yag_server.close()

6. 最后

上面總結了 Python 發(fā)送郵件的 3 種方式,實際項目中,更推薦使用后兩種方式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    13

    文章

    10077

    瀏覽量

    90811
  • 編碼
    +關注

    關注

    6

    文章

    1010

    瀏覽量

    56632
  • 郵件
    +關注

    關注

    0

    文章

    32

    瀏覽量

    19071
  • HTML
    +關注

    關注

    0

    文章

    280

    瀏覽量

    45602
  • python
    +關注

    關注

    57

    文章

    4856

    瀏覽量

    89518
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    在Java中如何使用API來完成郵件的接收與發(fā)送

    的接收與發(fā)送。 通過該篇文章我們可以有如下收獲: 了解基于Java的電子郵件客戶端的實現(xiàn)方式 了解常見的郵箱如何集成 認識郵箱中的IMAP與POP協(xié)議 適用場景 郵件和短信很像,將信息
    的頭像 發(fā)表于 09-30 14:09 ?4507次閱讀
    在Java中如何使用API來完成<b class='flag-5'>郵件</b>的接收與<b class='flag-5'>發(fā)送</b>

    電子郵件的使用培圳教程

    當天就能收到對方發(fā)來的郵件。 二、郵件的異步傳輸   電話通信是一同步通信,即通話雙方必須同時在電話機旁且電話必須是空閑的。而電子郵件則是以一
    發(fā)表于 03-10 17:55

    5Python實現(xiàn)方式詳解

    python就是是一面向對象的解釋型計算機程序設計語言,具有豐富和強大的庫,語言因其簡潔性、易讀性以及可擴展性受到歡迎。python可用于圖形處理、數(shù)學處理、文本處理、數(shù)據(jù)庫編程、網(wǎng)絡編程、Web
    發(fā)表于 05-22 15:52

    Labview發(fā)送notes郵件

    請前輩點撥如何用labview發(fā)送notes郵件,公司用這個郵件系統(tǒng),但是通過用例的方式是無法發(fā)出郵件的,求教
    發(fā)表于 07-21 09:43

    C#教程之調用Outlook發(fā)送郵件

    C#教程之調用Outlook發(fā)送郵件,很好的C#資料,快來學習吧。
    發(fā)表于 04-20 15:27 ?4次下載

    C#教程之調用SMTP發(fā)送有附件的郵件

    C#教程之調用SMTP發(fā)送有附件的郵件,很好的C#資料,快來學習吧。
    發(fā)表于 04-20 15:27 ?16次下載

    如何向您選擇的某人發(fā)送電子郵件

    您可以通過單擊左側的“發(fā)送”選項卡來確認您的電子郵件是否已發(fā)送。它將顯示您發(fā)送的所有電子郵件。如果未顯示最近
    的頭像 發(fā)表于 12-13 16:35 ?5886次閱讀
    如何向您選擇的某人<b class='flag-5'>發(fā)送電子郵件</b>

    使用Python向Telegram用戶發(fā)送消息

    電子發(fā)燒友網(wǎng)站提供《使用Python向Telegram用戶發(fā)送消息.zip》資料免費下載
    發(fā)表于 11-24 10:49 ?0次下載
    使用<b class='flag-5'>Python</b>向Telegram用戶<b class='flag-5'>發(fā)送</b>消息

    基于SpringBoot實現(xiàn)郵件發(fā)送

    本項目通過Springboot發(fā)送email郵件,包括普通文本郵件 、HTML內容板式郵件 、包含靜態(tài)資源郵件以及帶附件
    的頭像 發(fā)表于 02-28 14:58 ?2143次閱讀
    基于SpringBoot實現(xiàn)<b class='flag-5'>郵件</b><b class='flag-5'>發(fā)送</b>

    如何用python發(fā)送接收郵件

    SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉方式。
    的頭像 發(fā)表于 07-11 09:30 ?1394次閱讀
    如何用<b class='flag-5'>python</b><b class='flag-5'>發(fā)送</b>接收<b class='flag-5'>郵件</b>

    怎么用Python構建一個自動發(fā)送郵件的腳本

    ? 類似的應用場景還有很多,不僅僅是在股票策略提醒上,比如定時向某些人發(fā)送郵件;網(wǎng)站宕機了,實時發(fā)送郵件提醒;網(wǎng)站負載過高,發(fā)送
    的頭像 發(fā)表于 10-21 14:47 ?1199次閱讀
    怎么用<b class='flag-5'>Python</b>構建一個自動<b class='flag-5'>發(fā)送</b><b class='flag-5'>郵件</b>的腳本

    Python調用JS的 4 方式

    Python 實現(xiàn) 本文將聊聊利用 Python 調用 JS 的4方式 2. 準備 以一段簡單的 JS 腳本為例,將代碼寫入到文件中
    的頭像 發(fā)表于 10-30 09:41 ?1411次閱讀

    怎么用Python構建一個自動發(fā)送郵件的腳本

    呢? 類似的應用場景還有很多,不僅僅是在股票策略提醒上,比如定時向某些人發(fā)送郵件;網(wǎng)站宕機了,實時發(fā)送郵件提醒;網(wǎng)站負載過高,發(fā)送
    的頭像 發(fā)表于 10-31 16:36 ?1051次閱讀
    怎么用<b class='flag-5'>Python</b>構建一個自動<b class='flag-5'>發(fā)送</b><b class='flag-5'>郵件</b>的腳本

    如何用Python批量定制化發(fā)送郵件

    現(xiàn)實生活中,如果只是發(fā)郵件給自己,像上一篇文章那樣簡陋的格式是可以接受的,但若要針對每個人進行郵件的定制化,群發(fā)給公司客戶、內部員工、親戚朋友,則需更加高級的郵件發(fā)送
    的頭像 發(fā)表于 11-01 11:32 ?6743次閱讀

    如何使用Python編寫腳本來自動發(fā)送郵件

    Python是一非常流行的編程語言,可以用于多種用途,包括自動化任務。其中一個常見的自動化任務是自動發(fā)送郵件。在本文中,我們將介紹如何使用Pyth
    的頭像 發(fā)表于 12-07 11:36 ?1988次閱讀