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

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

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

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

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

1. 引言 (Introduction)

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

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

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

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

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

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

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

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

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

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

我們將通過(guò)一個(gè)完整的示例,演示如何向一個(gè)名單里的所有人發(fā)送帶有專(zhuān)屬稱(chēng)呼的問(wèn)候郵件。

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

首先,我們需要在代碼開(kāi)頭引入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ā)送間隔,防止被識(shí)別為垃圾郵件

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

接下來(lái),配置你的郵箱賬號(hào)、授權(quán)碼以及對(duì)應(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)端口號(hào)通常是465

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

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

為了演示批量發(fā)送,我們使用一個(gè)包含多個(gè)收件人信息的列表(List)。在實(shí)際應(yīng)用中,這些數(shù)據(jù)通常來(lái)自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ù)器,然后通過(guò)一個(gè)循環(huán)(Loop),為列表中的每個(gè)人生成專(zhuān)屬郵件并發(fā)送。

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

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

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

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

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

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

4. 常見(jiàn)問(wèn)題與避坑指南 (Common Pitfalls)

在實(shí)際操作中,新手常常會(huì)遇到以下幾個(gè)“坑”,請(qǐng)務(wù)必注意:

密碼錯(cuò)誤 (Authentication failed)

避坑:絕大多數(shù)情況是因?yàn)槭褂昧肃]箱的登錄密碼而不是授權(quán)碼。請(qǐng)務(wù)必去郵箱設(shè)置中生成授權(quán)碼并填入代碼中。

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

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

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

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

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

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

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

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

下一步進(jìn)階建議:

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

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

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

相關(guān)文章

最新評(píng)論

新和县| 依安县| 饶平县| 宁城县| 碌曲县| 巍山| 内乡县| 保德县| 千阳县| 滨海县| 德江县| 双江| 景德镇市| 军事| 香河县| 望江县| 崇仁县| 钟山县| 加查县| 德钦县| 泸西县| 攀枝花市| 航空| 平陆县| 延边| 治多县| 布拖县| 扶风县| 普定县| 东明县| 闽清县| 九寨沟县| 陆河县| 北票市| 仪陇县| 上饶县| 祁连县| 偃师市| 扬州市| 惠东县| 崇信县|