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

零基礎(chǔ)教你如何使用Python批量發(fā)送郵件

 更新時間:2026年04月03日 08:19:18   作者:小莊-Python辦公  
在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要向多人發(fā)送通知、邀請函或工資條的情況,本文將作為一份面向完全零基礎(chǔ)新手的系統(tǒng)性指南,帶你一步步掌握使用Python批量發(fā)送郵件的技能

在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要向多人發(fā)送通知、邀請函或工資條的情況。如果手動一封封發(fā)送,不僅耗時耗力,還容易出錯。幸運的是,通過Python,我們可以輕松實現(xiàn)郵件的批量、自動化發(fā)送,甚至可以為每個人定制專屬的稱呼。

本文將作為一份面向完全零基礎(chǔ)新手的系統(tǒng)性指南,帶你一步步掌握使用Python批量發(fā)送郵件的技能。

1. 引言 (Introduction)

為什么選擇用Python發(fā)郵件?

  • 極速高效:幾秒鐘內(nèi)即可將上百封郵件準(zhǔn)確發(fā)送完畢。
  • 高度個性化:可以結(jié)合數(shù)據(jù)(如Excel表格),讓每一封郵件擁有不同的收件人姓名和專屬內(nèi)容。
  • 自動化:寫好代碼后,可以設(shè)置為定時任務(wù),完全解放雙手。

在Python中,處理郵件主要依賴兩個內(nèi)置模塊:smtplib(負(fù)責(zé)連接服務(wù)器并發(fā)送郵件)和 email(負(fù)責(zé)構(gòu)建郵件的標(biāo)題、正文等內(nèi)容)。因為它們是內(nèi)置的,所以你不需要額外安裝任何第三方庫即可上手。

2. 準(zhǔn)備工作 (Prerequisites)

在開始寫代碼之前,你需要準(zhǔn)備好以下幾樣?xùn)|西:

安裝好的Python環(huán)境:確保你的電腦上已經(jīng)安裝了Python(建議版本3.6以上)。你可以使用任何代碼編輯器,如VS Code、PyCharm,甚至自帶的IDLE。

一個用于發(fā)信的郵箱賬號:QQ郵箱、網(wǎng)易163郵箱、新浪郵箱等均可。

開啟SMTP服務(wù)并獲取“授權(quán)碼”

  • 注意:為了安全,現(xiàn)在的郵箱程序不允許直接使用你的登錄密碼來通過代碼發(fā)郵件。你需要使用授權(quán)碼(App Password)。
  • 獲取方法(以QQ郵箱為例):登錄網(wǎng)頁版QQ郵箱 -> 點擊頂部的【設(shè)置】 -> 【賬戶】 -> 找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)】 -> 開啟【POP3/SMTP服務(wù)】 -> 點擊【生成授權(quán)碼】。請將這串字母/數(shù)字保存好,代碼中會用到。

3. 分步指南 (Step-by-Step Guide)

我們將通過一個完整的示例,演示如何向一個名單里的所有人發(fā)送帶有專屬稱呼的問候郵件。

步驟 1:導(dǎo)入必要的庫

首先,我們需要在代碼開頭引入Python內(nèi)置的郵件處理工具。

import smtplib  # 用于發(fā)送郵件的協(xié)議模塊
from email.mime.text import MIMEText  # 用于構(gòu)建純文本或HTML郵件正文
from email.header import Header  # 用于處理郵件的主題(標(biāo)題)編碼
import time  # 用于添加發(fā)送間隔,防止被識別為垃圾郵件

步驟 2:設(shè)置發(fā)件人信息與服務(wù)器

接下來,配置你的郵箱賬號、授權(quán)碼以及對應(yīng)的SMTP服務(wù)器地址。

# 1. 郵箱基礎(chǔ)設(shè)置
smtp_server = "smtp.qq.com"  # QQ郵箱的SMTP服務(wù)器地址 (163郵箱為 smtp.163.com)
smtp_port = 465              # SSL安全連接的標(biāo)準(zhǔn)端口號通常是465

sender_email = "your_email@qq.com"  # 替換為你的真實發(fā)件郵箱
auth_code = "abcdefghijklmnop"      # 替換為剛才獲取的郵箱授權(quán)碼(非登錄密碼)

步驟 3:準(zhǔn)備收件人列表

為了演示批量發(fā)送,我們使用一個包含多個收件人信息的列表(List)。在實際應(yīng)用中,這些數(shù)據(jù)通常來自Excel表格。

# 2. 準(zhǔn)備收件人數(shù)據(jù) (包含姓名和郵箱地址)
receivers = [
    {"name": "張三", "email": "zhangsan@example.com"},
    {"name": "李四", "email": "lisi@example.com"},
    # 你可以在這里繼續(xù)添加更多的收件人
]

步驟 4:構(gòu)建郵件內(nèi)容并批量發(fā)送

這是最核心的一步。我們需要登錄服務(wù)器,然后通過一個循環(huán)(Loop),為列表中的每個人生成專屬郵件并發(fā)送。

# 3. 連接服務(wù)器并批量發(fā)送
try:
    # 建立安全的SSL連接
    server = smtplib.SMTP_SSL(smtp_server, smtp_port)
    # 登錄郵箱
    server.login(sender_email, auth_code)
    print("成功登錄郵箱服務(wù)器!開始發(fā)送郵件...\n")

    # 遍歷收件人列表,逐個發(fā)送
    for person in receivers:
        receiver_name = person["name"]
        receiver_email = person["email"]

        # 構(gòu)建個性化郵件正文
        mail_content = f"""
        親愛的 {receiver_name}:
        
        你好!這是一封由Python自動發(fā)送的測試郵件。
        祝你今天工作順利,學(xué)習(xí)進步!
        
        發(fā)件人:Python自動化助手
        """
        
        # 將正文轉(zhuǎn)化為郵件對象 (內(nèi)容, 格式, 編碼)
        message = MIMEText(mail_content, 'plain', 'utf-8')
        
        # 設(shè)置郵件的 發(fā)件人、收件人 和 主題
        message['From'] = Header("自動化助手", 'utf-8')  # 發(fā)件人昵稱
        message['To'] = Header(receiver_name, 'utf-8')   # 收件人昵稱
        message['Subject'] = Header("Python批量發(fā)送郵件測試", 'utf-8') # 郵件標(biāo)題

        # 發(fā)送郵件
        server.sendmail(sender_email, receiver_email, message.as_string())
        print(f"? 成功發(fā)送郵件給: {receiver_name} ({receiver_email})")
        
        # 暫停2秒,避免發(fā)送過快被封禁
        time.sleep(2)

    print("\n?? 所有郵件發(fā)送完畢!")

except smtplib.SMTPException as e:
    print(f"? 郵件發(fā)送失敗,錯誤信息:{e}")
finally:
    # 無論成功與否,最后都要關(guān)閉服務(wù)器連接
    server.quit()

4. 常見問題與避坑指南 (Common Pitfalls)

在實際操作中,新手常常會遇到以下幾個“坑”,請務(wù)必注意:

密碼錯誤 (Authentication failed)

避坑:絕大多數(shù)情況是因為使用了郵箱的登錄密碼而不是授權(quán)碼。請務(wù)必去郵箱設(shè)置中生成授權(quán)碼并填入代碼中。

被識別為垃圾郵件 (Spam / Banned)

避坑:如果你一次性發(fā)送成百上千封郵件,或者發(fā)送頻率極快,郵箱服務(wù)商會把你的賬號當(dāng)成發(fā)送垃圾郵件的機器人。解決方案是在循環(huán)中使用 time.sleep(2) 暫停幾秒鐘,并盡量避免在郵件中包含敏感或推銷詞匯。

端口和服務(wù)器地址錯誤

避坑:不同郵箱的SMTP服務(wù)器地址和端口不同。例如,網(wǎng)易163郵箱是 smtp.163.com,騰訊企業(yè)郵箱是 smtp.exmail.qq.com。使用前請百度查詢對應(yīng)郵箱的SMTP設(shè)置。

發(fā)件人/收件人顯示為 unknown

避坑:這是因為沒有正確設(shè)置 message['From']message['To'] 字段。必須按照步驟4中的代碼,使用 Header 進行規(guī)范的編碼轉(zhuǎn)換。

5. 總結(jié)與進階資源 (Conclusion & Resources)

恭喜你!到這里你已經(jīng)掌握了使用Python批量發(fā)送郵件的基礎(chǔ)技能。這不僅能極大地提升你的工作效率,也是邁向“Python自動化辦公”的重要一步。

下一步進階建議:

  • 結(jié)合Excel讀取數(shù)據(jù):你可以學(xué)習(xí)使用 pandasopenpyxl 庫。先讓Python從Excel表格中讀取員工的姓名、郵箱和工資數(shù)據(jù),然后再結(jié)合本文的代碼,實現(xiàn)批量發(fā)送定制工資條的功能。
  • 發(fā)送帶附件和HTML格式的郵件:學(xué)習(xí) email.mime.multipartemail.mime.application 模塊,可以讓你的郵件支持發(fā)送圖片、PDF附件,或者擁有精美排版的網(wǎng)頁(HTML)正文。
  • 使用更高級的第三方庫:當(dāng)你熟悉了底層原理后,可以嘗試使用第三方庫 yagmail。它對 smtplib 進行了深度封裝,能讓你用短短三五行代碼就完成帶附件的郵件發(fā)送,語法更加簡潔友好。

編程的樂趣在于解決實際問題。現(xiàn)在,就打開你的代碼編輯器,試著給自己或朋友發(fā)送第一封Python自動化郵件吧!

到此這篇關(guān)于零基礎(chǔ)教你如何使用Python批量發(fā)送郵件的文章就介紹到這了,更多相關(guān)Python批量發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

额尔古纳市| 福建省| 武安市| 汕尾市| 卓尼县| 高淳县| 东乌珠穆沁旗| 内丘县| 西藏| 乌苏市| 马鞍山市| 仙居县| 建水县| 大荔县| 乐至县| 项城市| 宝兴县| 泰州市| 聂拉木县| 广水市| 贵阳市| 通许县| 扶风县| 南漳县| 黑龙江省| 巴林左旗| 巴林左旗| 龙江县| 辽源市| 泰来县| 东乡族自治县| 德庆县| 巴青县| 碌曲县| 墨玉县| 上思县| 朔州市| 弥勒县| 凤台县| 龙井市| 玉田县|