Python利用腳本實(shí)現(xiàn)自動(dòng)發(fā)送電子郵件
要編寫(xiě)一個(gè)Python腳本來(lái)自動(dòng)發(fā)送電子郵件,你可以使用smtplib庫(kù)來(lái)處理SMTP協(xié)議,以及email庫(kù)來(lái)構(gòu)建郵件內(nèi)容。
1.安裝必要的庫(kù)
通常情況下,smtplib和email庫(kù)是Python標(biāo)準(zhǔn)庫(kù)的一部分,因此不需要額外安裝。如果你使用的是較舊的Python版本,可能需要確保這些庫(kù)已安裝。
2.編寫(xiě)腳本
以下是一個(gè)完整的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)建郵件對(duì)象
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 = '測(cè)試郵件'
body = '這是一封測(cè)試郵件,包含附件。'
# 附件路徑(可選)
attachment_path = 'example.txt' # 替換為你的附件文件路徑
# 發(fā)送郵件
send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path)
3.運(yùn)行腳本
將上述腳本保存為一個(gè)Python文件(例如send_email.py),然后在命令行中運(yùn)行:
python send_email.py
4.注意事項(xiàng)
SMTP服務(wù)器:你需要替換smtp_server和smtp_port為你的電子郵件服務(wù)提供商的SMTP服務(wù)器地址和端口。例如,Gmail的SMTP服務(wù)器是smtp.gmail.com,端口是587。
發(fā)件人郵箱和密碼:你需要替換sender_email和sender_password為你的發(fā)件人郵箱地址和密碼。對(duì)于Gmail,你可能需要生成一個(gè)應(yīng)用專用密碼。
收件人郵箱:替換receiver_email為收件人的郵箱地址。
附件:如果你不需要發(fā)送附件,可以將attachment_path設(shè)置為None。
5.安全性
密碼安全:不要在腳本中硬編碼密碼,尤其是當(dāng)你將代碼分享或上傳到公共倉(cāng)庫(kù)時(shí)??梢钥紤]使用環(huán)境變量或配置文件來(lái)管理敏感信息。
TLS加密:確保使用starttls()來(lái)啟用TLS加密,以保護(hù)郵件內(nèi)容在傳輸過(guò)程中的安全。
到此這篇關(guān)于Python利用腳本實(shí)現(xiàn)自動(dòng)發(fā)送電子郵件的文章就介紹到這了,更多相關(guān)Python自動(dòng)發(fā)送電子郵件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python sqlparse 解析庫(kù)的基礎(chǔ)使用過(guò)程解析
sqlparse 是一個(gè) Python 庫(kù),是一個(gè)用于 Python 的非驗(yàn)證 SQL 解析器, 用于解析 SQL 語(yǔ)句并提供一個(gè)簡(jiǎn)單的 API 來(lái)訪問(wèn)解析后的 SQL 結(jié)構(gòu),這篇文章主要介紹了Python sqlparse 解析庫(kù)的基礎(chǔ)使用,需要的朋友可以參考下2024-08-08
Python如何利用xlrd和xlwt模塊操作Excel表格
這篇文章主要給大家介紹了關(guān)于Python如何利用xlrd和xlwt模塊操作Excel表格的相關(guān)資料,其中xlrd模塊實(shí)現(xiàn)對(duì)excel文件內(nèi)容讀取,xlwt模塊實(shí)現(xiàn)對(duì)excel文件的寫(xiě)入,需要的朋友可以參考下2022-03-03
Python新手指南之如何讀寫(xiě)舊版Excel(.xls)格式文件
在數(shù)據(jù)處理的世界里,Excel 是最常見(jiàn)的文件格式之一,本教程將手把手教你如何使用 Python 系統(tǒng)化、專業(yè)地讀寫(xiě) .xls 文件,有需要的小伙伴可以了解下2026-01-01
詳解Python 模擬實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式的實(shí)例
這篇文章主要介紹了詳解Python 模擬實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式的實(shí)例的相關(guān)資料,這里使用了線程知識(shí),隊(duì)列知識(shí)及循環(huán)的知識(shí),需要的朋友可以參考下2017-08-08
python爬蟲(chóng)之requests庫(kù)使用代理方式
這篇文章主要介紹了python爬蟲(chóng)之requests庫(kù)使用代理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
python?replace?空格數(shù)據(jù)處理的實(shí)現(xiàn)
本文主要介紹了python?replace?空格數(shù)據(jù)處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

