国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

電子郵件

2019-11-10 18:10:28
字體:
供稿:網(wǎng)友

Email的歷史比Web還要久遠(yuǎn),直到現(xiàn)在,Email也是互聯(lián)網(wǎng)上應(yīng)用非常廣泛的服務(wù)。

幾乎所有的編程語言都支持發(fā)送和接收電子郵件,但是,先等等,在我們開始編寫代碼之前,有必要搞清楚電子郵件是如何在互聯(lián)網(wǎng)上運(yùn)作的。

我們來看看傳統(tǒng)郵件是如何運(yùn)作的。假設(shè)你現(xiàn)在在北京,要給一個(gè)香港的朋友發(fā)一封信,怎么做呢?

首先你得寫好信,裝進(jìn)信封,寫上地址,貼上郵票,然后就近找個(gè)郵局,把信仍進(jìn)去。

信件會從就近的小郵局轉(zhuǎn)運(yùn)到大郵局,再從大郵局往別的城市發(fā),比如先發(fā)到天津,再走海運(yùn)到達(dá)香港,也可能走京九線到香港,但是你不用關(guān)心具體路線,你只需要知道一件事,就是信件走得很慢,至少要幾天時(shí)間。

信件到達(dá)香港的某個(gè)郵局,也不會直接送到朋友的家里,因?yàn)猷]局的叔叔是很聰明的,他怕你的朋友不在家,一趟一趟地白跑,所以,信件會投遞到你的朋友的郵箱里,郵箱可能在公寓的一層,或者家門口,直到你的朋友回家的時(shí)候檢查郵箱,發(fā)現(xiàn)信件后,就可以取到郵件了。

電子郵件的流程基本上也是按上面的方式運(yùn)作的,只不過速度不是按天算,而是按秒算。

現(xiàn)在我們回到電子郵件,假設(shè)我們自己的電子郵件地址是me@163.com,對方的電子郵件地址是friend@sina.com(注意地址都是虛構(gòu)的哈),現(xiàn)在我們用Outlook或者Foxmail之類的軟件寫好郵件,填上對方的Email地址,點(diǎn)“發(fā)送”,電子郵件就發(fā)出去了。這些電子郵件軟件被稱為MUA:Mail User Agent——郵件用戶代理。

Email從MUA發(fā)出去,不是直接到達(dá)對方電腦,而是發(fā)到MTA:Mail Transfer Agent——郵件傳輸代理,就是那些Email服務(wù)提供商,比如網(wǎng)易、新浪等等。由于我們自己的電子郵件是163.com,所以,Email首先被投遞到網(wǎng)易提供的MTA,再由網(wǎng)易的MTA發(fā)到對方服務(wù)商,也就是新浪的MTA。這個(gè)過程中間可能還會經(jīng)過別的MTA,但是我們不關(guān)心具體路線,我們只關(guān)心速度。

Email到達(dá)新浪的MTA后,由于對方使用的是@sina.com的郵箱,因此,新浪的MTA會把Email投遞到郵件的最終目的地MDA:Mail Delivery Agent——郵件投遞代理。Email到達(dá)MDA后,就靜靜地躺在新浪的某個(gè)服務(wù)器上,存放在某個(gè)文件或特殊的數(shù)據(jù)庫里,我們將這個(gè)長期保存郵件的地方稱之為電子郵箱。

同普通郵件類似,Email不會直接到達(dá)對方的電腦,因?yàn)閷Ψ诫娔X不一定開機(jī),開機(jī)也不一定聯(lián)網(wǎng)。對方要取到郵件,必須通過MUA從MDA上把郵件取到自己的電腦上。

所以,一封電子郵件的旅程就是:

發(fā)件人 -> MUA -> MTA -> MTA -> 若干個(gè)MTA -> MDA <- MUA <- 收件人

有了上述基本概念,要編寫程序來發(fā)送和接收郵件,本質(zhì)上就是:

編寫MUA把郵件發(fā)到MTA;

編寫MUA從MDA上收郵件。

發(fā)郵件時(shí),MUA和MTA使用的協(xié)議就是SMTP:Simple Mail Transfer PRotocol,后面的MTA到另一個(gè)MTA也是用SMTP協(xié)議。

收郵件時(shí),MUA和MDA使用的協(xié)議有兩種:POP:Post Office Protocol,目前版本是3,俗稱POP3;IMAP:Internet Message access Protocol,目前版本是4,優(yōu)點(diǎn)是不但能取郵件,還可以直接操作MDA上存儲的郵件,比如從收件箱移到垃圾箱,等等。

郵件客戶端軟件在發(fā)郵件時(shí),會讓你先配置SMTP服務(wù)器,也就是你要發(fā)到哪個(gè)MTA上。假設(shè)你正在使用163的郵箱,你就不能直接發(fā)到新浪的MTA上,因?yàn)樗环?wù)新浪的用戶,所以,你得填163提供的SMTP服務(wù)器地址:smtp.163.com,為了證明你是163的用戶,SMTP服務(wù)器還要求你填寫郵箱地址和郵箱口令,這樣,MUA才能正常地把Email通過SMTP協(xié)議發(fā)送到MTA。

類似的,從MDA收郵件時(shí),MDA服務(wù)器也要求驗(yàn)證你的郵箱口令,確保不會有人冒充你收取你的郵件,所以,Outlook之類的郵件客戶端會要求你填寫POP3或IMAP服務(wù)器地址、郵箱地址和口令,這樣,MUA才能順利地通過POP或IMAP協(xié)議從MDA取到郵件。

在使用Python收發(fā)郵件前,請先準(zhǔn)備好至少兩個(gè)電子郵件,如xxx@163.comxxx@sina.comxxx@QQ.com等,注意兩個(gè)郵箱不要用同一家郵件服務(wù)商。


上一篇:使用GDB調(diào)試C庫

下一篇:poj1595

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澄迈县| 广宗县| 十堰市| 璧山县| 云安县| 卢龙县| 盐池县| 麻江县| 公安县| 保康县| 大兴区| 宁武县| 黑河市| 永安市| 平乐县| 巴东县| 嘉义县| 金塔县| 隆昌县| 金阳县| 八宿县| 依安县| 同仁县| 江陵县| 雷山县| 隆林| 察隅县| 涿州市| 屯留县| 荔浦县| 林芝县| 康乐县| 镇宁| 咸宁市| 花垣县| 昭通市| 土默特右旗| 寿宁县| 卫辉市| 叶城县| 沂水县|