60. 電子郵件
假設我們自己的電子郵件地址是me@163.com,對方的電子郵件地址是friend@sina.com(注意地址都是虛構的哈),現在我們用Outlook或者Foxmail之類的軟體寫好郵件,填上對方的Email地址,點“傳送”,電子郵件就發出去了。這些電子郵件軟體被稱為MUA:Mail User Agent——郵件使用者代理。
Email從MUA發出去,不是直接到達對方電腦,而是發到MTA:Mail Transfer Agent——郵件傳輸代理,就是那些Email服務提供商,比如網易、新浪等等。由於我們自己的電子郵件是163.com,所以,Email首先被投遞到網易提供的MTA,再由網易的MTA發到對方服務商,也就是新浪的MTA。這個過程中間可能還會經過別的MTA,但是我們不關心具體路線,我們只關心速度。
Email到達新浪的MTA後,由於對方使用的是@sina.com的郵箱,因此,新浪的MTA會把Email投遞到郵件的最終目的地MDA:Mail Delivery Agent——郵件投遞代理。Email到達MDA後,就靜靜地躺在新浪的某個伺服器上,存放在某個檔案或特殊的資料庫裡,我們將這個長期儲存郵件的地方稱之為電子郵箱。
同普通郵件類似,Email不會直接到達對方的電腦,因為對方電腦不一定開機,開機也不一定聯網。對方要取到郵件,必須通過MUA從MDA上把郵件取到自己的電腦上。
所以,一封電子郵件的旅程就是:發件人 -> MUA -> MTA -> MTA -> 若干個MTA -> MDA <- MUA <- 收件人
有了上述基本概念,要編寫程式來傳送和接收郵件,本質上就是:
編寫MUA把郵件發到MTA;
編寫MUA從MDA上收郵件。
發郵件時,MUA和MTA使用的協議就是SMTP:Simple Mail Transfer Protocol,後面的MTA到另一個MTA也是用SMTP協議。
收郵件時,MUA和MDA使用的協議有兩種:POP:Post Office Protocol,目前版本是3,俗稱POP3;IMAP:Internet Message Access Protocol,目前版本是4,優點是不但能取郵件,還可以直接操作MDA上儲存的郵件,比如從收件箱移到垃圾箱,等等。
郵件客戶端軟體在發郵件時,會讓你先配置SMTP伺服器,也就是你要發到哪個MTA上。假設你正在使用163的郵箱,你就不能直接發到新浪的MTA上,因為它只服務新浪的使用者,所以,你得填163提供的SMTP伺服器地址:smtp.163.com,為了證明你是163的使用者,SMTP伺服器還要求你填寫郵箱地址和郵箱口令,這樣,MUA才能正常地把Email通過SMTP協議傳送到MTA。
類似的,從MDA收郵件時,MDA伺服器也要求驗證你的郵箱口令,確保不會有人冒充你收取你的郵件,所以,Outlook之類的郵件客戶端會要求你填寫POP3或IMAP伺服器地址、郵箱地址和口令,這樣,MUA才能順利地通過POP或IMAP協議從MDA取到郵件。
在使用Python收發郵件前,請先準備好至少兩個電子郵件,如xxx@163.com,xxx@sina.com,xxx@qq.com等,注意兩個郵箱不要用同一家郵件服務商。
最後特別注意,目前大多數郵件服務商都需要手動開啟SMTP發信和POP收信的功能,否則只允許在網頁登入
相關文章
- 電子郵件
- 電子郵件“人到中年”
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法
- 電子郵件協議及GO傳送QQ郵件協議Go
- 電子郵件被黑客追蹤黑客
- 用oracle傳送電子郵件Oracle
- 如何保護電子郵件安全
- 安全使用電子郵件十三法
- Postfix電子郵件系統精要
- 用ASP發電子郵件 (轉)
- 共享電子郵件的運作方式
- ADRMS保護電子郵件安全
- 管理電子郵件的7個方法
- 電子郵件管理的COTA法則
- 資訊圖:電子郵件的未來
- 電子郵件成“重災區”,如何有效防禦接連不斷的電子郵件攻擊
- 你的郵件安全嗎? 電子郵件威脅與防禦剖析
- 玩轉展會電子郵件營銷
- 精通電子郵件的八個核心方法
- 用英文寫電子郵件的常用句式
- Knuth何時起不再使用電子郵件?
- 在蘋果電腦的Mac郵件上阻止和取消阻止電子郵件地址的方法蘋果Mac
- 利用SQL Server 2005資料庫郵件傳送電子郵件SQLServer資料庫
- 在VC中呼叫預設的電子郵件程式傳送郵件 (轉)
- 蘋果Mac上的郵件如何刪除不需要的電子郵件地址?蘋果Mac
- NewoldStamp:商務電子郵件營銷報告
- SpringBoot實現傳送電子郵件Spring Boot
- 如何用 Linux 命令列發電子郵件Linux命令列
- 如何避免這3 個電子郵件錯誤
- C# 傳送電子郵件原始碼片段C#原始碼
- 在Linux命令列傳送電子郵件Linux命令列
- 電子郵件地址註冊過程詳解
- 為SSH登入設定電子郵件提醒
- SparkPost:2021年度電子郵件報告Spark
- 電子郵件系統具體安全服務
- Shayne Hughes:電子郵件引發效率低下
- 社交媒體的祕密武器:電子郵件
- 資訊圖:電子郵件,朋友還是敵人