編程學習網(wǎng) > 編程語言 > Python > 自動化郵件發(fā)送的終極秘籍:Python庫smtplib與email的完整玩法
2025
09-22

自動化郵件發(fā)送的終極秘籍:Python庫smtplib與email的完整玩法


還記得第一次寫郵件是什么時候嗎? 也許是小時候用QQ郵箱給同學寫過一封“秘密小紙條”,也許是剛參加工作時,用Outlook給領導發(fā)了一份認真的周報。

無論是哪一種場景,郵件在我們生活和工作中都不可或缺。但你有沒有想過,有一天,你可以不用手點開郵箱,一封一封地寫,而是用幾行Python代碼,就能自動完成?
是的,這就是我要分享的主題:用Python自動化發(fā)送郵件。 而實現(xiàn)這一切的關鍵,就是兩個Python的內置庫:smtplib 和 email。
今天,我們就從零開始,把它們拆開來講,帶你走一遍“從入門到進階”的完整流程。不管你是編程小白,還是已經在寫腳本的開發(fā)者,這篇文章都會讓你收獲滿滿。
一、為什么要學會用Python發(fā)郵件?
先聊聊場景。 想象一下這些情況:
你是一個數(shù)據(jù)分析師,每天需要把當天的分析報表發(fā)給老板。手動發(fā)很麻煩,忘記一次還可能挨批評。
你是一個開發(fā)者,系統(tǒng)運行出錯時需要自動通知相關人員。如果能讓程序自己發(fā)郵件提醒,是不是省心又高效?
你是一個交易愛好者,想每天收盤后收到一封“今日行情總結”的自動推送。
這些事情,完全可以交給Python來搞定。 說白了,Python的郵件自動化 = 省時、省力、省心。
而且最重要的是,這項技能你一旦掌握,就能用在無數(shù)場景中。
二、認識主角:smtplib 和 email
我們先別急著上手敲代碼,先搞明白兩個主角分別干啥。
smtplib:它就像是一個郵遞員,負責把你寫好的信(郵件)送到對方郵箱。SMTP 的全稱是“簡單郵件傳輸協(xié)議”,幾乎所有的郵件都是通過它來投遞的。
email:它是一個寫信工具,幫你把郵件的內容組裝好。不管是純文本、HTML,還是附件,都可以用它來構造。
一個管送,一個管寫。它倆搭配起來,就能把整個流程打通。
三、準備工作:郵箱設置
要讓Python幫你發(fā)郵件,第一步不是寫代碼,而是要讓你的郵箱“開門迎客”。
大部分郵箱默認是不允許外部程序直接登錄的,你需要先開啟 SMTP 服務。 以126郵箱為例,操作步驟大概是這樣:
登錄郵箱 → 找到 設置 → 找到 SMTP/POP3服務。
點擊開啟SMTP服務(有些平臺會要求你手機驗證碼驗證)。
驗證完成后,系統(tǒng)會給你一個 授權碼。注意,這個授權碼非常重要,它相當于是你用程序登錄郵箱的密碼,一定要妥善保存。
記下郵箱的 SMTP服務器地址。比如126郵箱的是 smtp.126.com,QQ郵箱的是 smtp.qq.com。
完成這一步,你的郵箱就算“開鎖”了,可以用來寫代碼了。
四、第一封自動化郵件:從零到一
下面我們寫一段最簡單的代碼:

運行之后,如果設置沒問題,你會在收件人的郵箱里看到一封“Python郵件測試”。 那一刻,成就感滿滿。
五、進階玩法:不止是純文本
如果只會發(fā)純文本郵件,未免有點太單調了。郵件其實還可以很“花哨”:
1. 發(fā)送HTML格式的郵件
比如你想發(fā)一封帶有排版、顏色甚至圖片的郵件,可以這樣寫:

收件人打開之后,會看到藍色的標題和排版整齊的正文,比純文本好多了。
2. 給郵件加上附件
再進一步,如果你需要把報表、圖片、文檔發(fā)給別人,可以添加附件:

運行后,收件人就能在郵件里下載 example.txt 這個附件。是不是很實用?
六、常見的坑與解決辦法
寫到這里,你可能躍躍欲試,但在實際使用中,大家經常會遇到一些小坑:

登錄失敗明明賬號密碼沒錯,卻提示“用戶名或密碼錯誤”。 

這通常是因為你沒用授權碼,而是直接用郵箱密碼。記住:程序登錄必須用授權碼!

554 5.7.1 錯誤這是郵件服務商把你的郵件認定為垃圾郵件。 

解決方法:

郵件標題和正文寫得正常一點,避免“中獎、優(yōu)惠、秒殺”之類的敏感詞。
不要一次性群發(fā)太多郵件。
端口問題
使用TLS加密一般是 587 端口;
使用SSL加密一般是 465 端口。 如果收不到郵件,試試換端口。
七、實戰(zhàn)場景:把郵件融入到你的工作流
學了這些基礎之后,真正的價值在于把它應用到實戰(zhàn)場景中。比如:
定時日報配合 schedule 或 cron 定時任務,每天自動生成報表并發(fā)給團隊。
監(jiān)控告警系統(tǒng)出錯、服務器宕機時,自動發(fā)郵件通知相關人員。
個人效率工具寫個腳本,把待辦事項、日程提醒發(fā)到自己郵箱里。
想象一下,當你睡覺的時候,Python幫你發(fā)完了所有的日報和提醒,是不是一種“解放雙手”的快感?
八、總結
今天我們從最基礎的概念講起,一步步演示了如何用Python的 smtplib 和 email 庫發(fā)送郵件。 內容涵蓋:
如何開啟郵箱的SMTP服務并獲取授權碼;
發(fā)送第一封純文本郵件;
擴展玩法:HTML郵件、帶附件的郵件;
常見問題與解決方案;
實戰(zhàn)場景應用。
你會發(fā)現(xiàn),這項技能其實并不復雜,但實用性極強。 當別人還在手動一封封發(fā)郵件時,你的Python腳本已經幫你自動搞定,這就是所謂的“用技術偷懶”。
如果你正打算提升工作效率,或者給項目加點“智能感”,試試用Python發(fā)一封屬于自己的自動化郵件吧。 也許,就從今天開始,你會對“發(fā)郵件”這件小事,重新產生敬畏和喜愛。
以上就是“自動化郵件發(fā)送的終極秘籍:Python庫smtplib與email的完整玩法的詳細內容,想要了解更多Python教程歡迎持續(xù)關注編程學習網(wǎng)。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取