【整個郵件系統是怎樣工作的】
郵件自互聯網誕生之初就有了,它和web服務一樣也是采用的c/s架構,比如我們常見的郵件客戶端有outlook、foxmail這些郵件客戶端軟件。
當我們要發郵件時客戶端就通過smtp協議與服務端進行通信把我們的郵件發到服務器端,比如我用的QQ郵件那么我發的郵件一定是先去了QQ
郵箱的服務器,這個時候服務器會看一下我發送的目標地址是多少,如果也是QQ郵箱用戶,那么它就直接把信投遞到對應的用戶;如果目標
地址不是QQ郵箱那么比如說是1234@162.com,那么它會把郵件發送到162郵箱的服務器,162郵箱的服務器會把郵件投遞到目標用戶。投遞
完成后郵件也只是進了目標用戶的郵桶,用戶想要看郵件還要取出來才行;郵件客戶端取郵件的過程用的是pop3協議,當然還有另一個協議
也是可以用來取郵件的它就imap協議。
【python3怎么發郵件呢】
python3中我們可以直接使用smtplib這個標准庫進行郵件的發送,但是為你發送的郵件對“人類”更加的友好,你通常還要加上email這個
標准庫
1、了解一下最簡單的郵件發送程序
from smtplib import SMTP_SSL with SMTP_SSL(host="smtp.qq.com") as smtp : smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxx') smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com",msg="hello world")
代碼的邏輯和我們日常使用郵箱時的過程是一樣的、先用自己的賬號密碼登錄上郵箱、接下來就可以發送郵件了;上面的代碼
並沒有用到email標准庫,所以它發出來的郵件一個正常的人類是看不懂的;但是對於寫代碼來說它保留了主干,更有利於我
們理解發送郵件的過程
2、來一個看的下去的例子
from smtplib import SMTP_SSLfrom email.mime.text import MIMEText with SMTP_SSL(host="smtp.qq.com") as smtp : smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxxxx') msg = MIMEText("這是來自Python3的一封測試郵件",_charset="utf8") msg["Subject"] = "測試郵件" msg["from"] = '1721900707@qq.com' msg["to"] = '1721900707@qq.com' smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com", msg=msg.as_string())
通過於email庫配合使用后郵件已經基本人類可讀了
----