【整個郵件系統是怎樣工作的】
郵件自網際網路誕生之初就有了,它和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庫配合使用後郵件已經基本人類可讀了
----