Python利用腳本實現(xiàn)自動發(fā)送電子郵件
要編寫一個Python腳本來自動發(fā)送電子郵件,你可以使用smtplib庫來處理SMTP協(xié)議,以及email庫來構(gòu)建郵件內(nèi)容。
1.安裝必要的庫
通常情況下,smtplib和email庫是Python標(biāo)準(zhǔn)庫的一部分,因此不需要額外安裝。如果你使用的是較舊的Python版本,可能需要確保這些庫已安裝。
2.編寫腳本
以下是一個完整的Python腳本示例,用于發(fā)送帶有附件的電子郵件
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders def send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path): # 設(shè)置SMTP服務(wù)器 smtp_server = 'smtp.example.com' # 替換為你的SMTP服務(wù)器地址 smtp_port = 587 # 替換為你的SMTP服務(wù)器端口 # 創(chuàng)建郵件對象 msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject # 添加郵件正文 msg.attach(MIMEText(body, 'plain')) # 添加附件 if attachment_path: attachment = open(attachment_path, 'rb') part = MIMEBase('application', 'octet-stream') part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header('Content-Disposition', f'attachment; filename={attachment_path}') msg.attach(part) attachment.close() # 連接SMTP服務(wù)器并發(fā)送郵件 try: server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # 啟用TLS加密 server.login(sender_email, sender_password) text = msg.as_string() server.sendmail(sender_email, receiver_email, text) server.quit() print("郵件發(fā)送成功") except Exception as e: print(f"郵件發(fā)送失敗: {e}") if __name__ == "__main__": # 替換為你的發(fā)件人郵箱和密碼 sender_email = 'your_email@example.com' sender_password = 'your_password' # 替換為收件人郵箱 receiver_email = 'receiver_email@example.com' # 郵件主題和正文 subject = '測試郵件' body = '這是一封測試郵件,包含附件。' # 附件路徑(可選) attachment_path = 'example.txt' # 替換為你的附件文件路徑 # 發(fā)送郵件 send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path)
3.運(yùn)行腳本
將上述腳本保存為一個Python文件(例如send_email.py),然后在命令行中運(yùn)行:
python send_email.py
4.注意事項
SMTP服務(wù)器:你需要替換smtp_server和smtp_port為你的電子郵件服務(wù)提供商的SMTP服務(wù)器地址和端口。例如,Gmail的SMTP服務(wù)器是smtp.gmail.com,端口是587。
發(fā)件人郵箱和密碼:你需要替換sender_email和sender_password為你的發(fā)件人郵箱地址和密碼。對于Gmail,你可能需要生成一個應(yīng)用專用密碼。
收件人郵箱:替換receiver_email為收件人的郵箱地址。
附件:如果你不需要發(fā)送附件,可以將attachment_path設(shè)置為None。
5.安全性
密碼安全:不要在腳本中硬編碼密碼,尤其是當(dāng)你將代碼分享或上傳到公共倉庫時??梢钥紤]使用環(huán)境變量或配置文件來管理敏感信息。
TLS加密:確保使用starttls()來啟用TLS加密,以保護(hù)郵件內(nèi)容在傳輸過程中的安全。
到此這篇關(guān)于Python利用腳本實現(xiàn)自動發(fā)送電子郵件的文章就介紹到這了,更多相關(guān)Python自動發(fā)送電子郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)在matplotlib中兩個坐標(biāo)軸之間畫一條直線光標(biāo)的方法
這篇文章主要介紹了Python實現(xiàn)在matplotlib中兩個坐標(biāo)軸之間畫一條直線光標(biāo)的方法,涉及Python操作matplotlib模塊繪圖的相關(guān)技巧,需要的朋友可以參考下2015-05-05python機(jī)器學(xué)習(xí)deepchecks庫訓(xùn)練檢查模型特點探索
這篇文章主要介紹了python機(jī)器學(xué)習(xí)deepchecks庫的訓(xùn)練檢查模型特點實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Pytest使用fixture實現(xiàn)token共享的方法
同學(xué)們在做pytest接口自動化時,會遇到一個場景就是不同的測試用例需要有一個登錄的前置步驟,登錄完成后會獲取到token,用于之后的代碼中,本文給大家介紹Pytest使用fixture實現(xiàn)token共享的方法,感興趣的朋友一起看看吧2023-11-11Django應(yīng)用程序入口WSGIHandler源碼解析
這篇文章主要介紹了Django應(yīng)用程序入口WSGIHandler源碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.
這篇文章主要介紹了Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程(顯卡MX250+CUDA9.0+cudnn),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02