1. 程式人生 > >Python學習筆記(四十七)SMTP發送郵件

Python學習筆記(四十七)SMTP發送郵件

email debug lib 第一個 發郵件 參數 html郵件 命令 兼容

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005226355aadb8d4b2f3f42f6b1d6f2c5bd8d5263000

SMTP是發送郵件的協議,Python內置對SMTP的支持,可以發送純文本郵件、HTML郵件以及帶附件的郵件。

Python對SMTP支持有smtplibemail兩個模塊,email負責構造郵件,smtplib負責發送郵件。

首先,我們來構造一個最簡單的純文本郵件:

from email.mime.text import MIMEText
msg 
= MIMEText(hello, send by Python..., plain, utf-8)

註意到構造MIMEText對象時,第一個參數就是郵件正文,第二個參數是MIMEsubtype,傳入‘plain‘表示純文本,最終的MIME就是‘text/plain‘,最後一定要用utf-8編碼保證多語言兼容性。

然後,通過SMTP發出去:

from email.mime.text import MIMEText

msg = MIMEText(Hello, send by Python..., plain, utf-8)

# 輸入Email地址和口令:
from_addr = input(From:) password = input(Password:) # 輸入收件人地址: to_addr = input(To:) # 輸入SMTP服務器地址: smtp_server = input(SMTP server:) import smtplib # SMTP 協議默認端口是25 server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()

我們用set_debuglevel(1)就可以打印出和SMTP服務器交互的所有信息。SMTP協議就是簡單的文本命令和響應。login()方法用來登錄SMTP服務器,sendmail()方法就是發郵件,由於可以一次發給多個人,所以傳入一個list,郵件正文是一個stras_string()MIMEText對象變成str

如果一切順利,就可以在收件人信箱中收到我們剛發送的Email:

Python學習筆記(四十七)SMTP發送郵件