Python利用腳本實現自動發(fā)送電子郵件
要編寫一個Python腳本來自動發(fā)送電子郵件,你可以使用smtplib庫來處理SMTP協(xié)議,以及email庫來構建郵件內容。
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):
# 設置SMTP服務器
smtp_server = 'smtp.example.com' # 替換為你的SMTP服務器地址
smtp_port = 587 # 替換為你的SMTP服務器端口
# 創(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服務器并發(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服務器:你需要替換smtp_server和smtp_port為你的電子郵件服務提供商的SMTP服務器地址和端口。例如,Gmail的SMTP服務器是smtp.gmail.com,端口是587。
發(fā)件人郵箱和密碼:你需要替換sender_email和sender_password為你的發(fā)件人郵箱地址和密碼。對于Gmail,你可能需要生成一個應用專用密碼。
收件人郵箱:替換receiver_email為收件人的郵箱地址。
附件:如果你不需要發(fā)送附件,可以將attachment_path設置為None。
5.安全性
密碼安全:不要在腳本中硬編碼密碼,尤其是當你將代碼分享或上傳到公共倉庫時??梢钥紤]使用環(huán)境變量或配置文件來管理敏感信息。
TLS加密:確保使用starttls()來啟用TLS加密,以保護郵件內容在傳輸過程中的安全。
到此這篇關于Python利用腳本實現自動發(fā)送電子郵件的文章就介紹到這了,更多相關Python自動發(fā)送電子郵件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

