Python利用腳本實現(xiàn)自動發(fā)送電子郵件
要編寫一個Python腳本來自動發(fā)送電子郵件,你可以使用smtplib庫來處理SMTP協(xié)議,以及email庫來構(gòu)建郵件內(nèi)容。
1.安裝必要的庫
通常情況下,smtplib和email庫是Python標準庫的一部分,因此不需要額外安裝。如果你使用的是較舊的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.運行腳本
將上述腳本保存為一個Python文件(例如send_email.py),然后在命令行中運行:
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.安全性
密碼安全:不要在腳本中硬編碼密碼,尤其是當你將代碼分享或上傳到公共倉庫時??梢钥紤]使用環(huán)境變量或配置文件來管理敏感信息。
TLS加密:確保使用starttls()來啟用TLS加密,以保護郵件內(nèi)容在傳輸過程中的安全。
到此這篇關(guān)于Python利用腳本實現(xiàn)自動發(fā)送電子郵件的文章就介紹到這了,更多相關(guān)Python自動發(fā)送電子郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用bar繪制堆積/帶誤差棒柱形圖的實現(xiàn)
本文先講解bar參數(shù)如何使用,然后分別演示堆積柱形圖和帶誤差柱形圖畫法。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09