發送郵件那些事
世界的第一封電子郵件
1969年10月世界上的第一封電子郵件是由計算機科學家Leonard K.教授發給他的同事的一條簡短消息。
據《互聯網周刊》報道世界上的第一封電子郵件是由計算機科學家Leonard K.教授發給他的同事的一條簡短消息(時間應該是1969年10月),這條消息只有兩個字母:"LO"。Leonard K.教授因此被稱為電子郵件之父。所以第一條網上信息就是‘LO’,意思是‘你好!’”
當然這個說法也有一點爭議,另外一種說法是麻省理工學院博士Ray Tomlinson發送的第一封郵件,這里不再展開討論。
中國的第一封電子郵件
1987年9月14日中國第一封電子郵件是由“德國互聯網之父”維納·措恩與王運豐在當時的兵 器工業部下屬單位—計算機應用技術研究所(簡稱ICA)發往德國卡爾斯魯厄大學的,其內容為德文和英文雙語,第一段大意如下:
原文:“ Across the Great Wall we can reach every corner in the world. ”
中文大意:“ 越過長城,我們可以到達世界的每一個角落。 ”
這是中國通過北京與德國卡爾斯魯厄大學之間的網絡連接,發出的第一封電子郵件。現在看這封郵件內容,頗具深意呀!
電子郵件的發展
雖然電子郵件是在70年代發明的,它卻是在80年才開始有人用,70年代的沉寂主要是由于當時使用Arpanet網絡的人太少,網絡的速度也僅為目前56Kbps標準速度的二十分之一。受網絡速度的限制,那時的用戶只能發送些簡短的信息,根本別想像現在這樣發送大量照片。
到80年代中期,個人電腦興起,電子郵件開始在電腦迷以及大學生中廣泛傳播開來;到90年代中期,互聯網瀏覽器誕生,全球網民人數激增,電子郵件被廣為使用。2000零幾年的時候,那時候沒有網盤,上大學的時候常常使用郵箱存儲東西,那時候的郵箱也主要以網易為主;到了現在,幾乎每個人都有好幾個郵箱,QQ郵箱、126郵箱、公司郵箱。
郵件協議
發送郵件的本質是將一個人的信息傳輸給另外一個人,那么如何傳輸就需要商量好標準,這些標準就是協議。最初只有兩個協議:
SMTP協議
SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議。它是一組用于從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。它的一個重要特點是它能夠在傳送中接力傳送郵件,即郵件可以通過不同網絡上的主機接力式傳送。
SMTP 認證,簡單地說就是要求必須在提供了賬戶名和密碼之后才可以登錄 SMTP 服務器,這就使得那些垃圾郵件的散播者無可乘之機。增加 SMTP 認證的目的是為了使用戶避免受到垃圾郵件的侵擾。
SMTP主要負責底層的郵件系統如何將郵件從一臺機器傳至另外一臺機器。
POP3協議
POP3是Post Office Protocol 3的簡稱,即郵局協議的第3個版本,它規定怎樣將個人計算機連接到Internet的郵件服務器和下載電子郵件的電子協議。它是因特網電子郵件的第一個離線協議標準,POP3允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件服務器上的郵件。
POP 協議支持“離線”郵件處理。其具體過程是:郵件發送到服務器上,電子郵件客戶端調用郵件客戶機程序以連接服務器,并下載所有未閱讀的電子郵件。這種離線訪問模式是一種存儲轉發服務,將郵件從郵件服務器端送到個人終端機器上,一般是 PC機或 MAC。一旦郵件發送到 PC 機或 MAC上,郵件服務器上的郵件將會被刪除。但目前的POP3郵件服務器大都可以“只下載郵件,服務器端并不刪除”,也就是改進的POP3協議。
SMTP和POP3是最初的兩個協議,隨著郵件的不斷發展后來又增加了兩個協議:
IMAP協議
全稱 Internet Mail Access Protocol(交互式郵件存取協議),IMAP是斯坦福大學在1986年開發的一種郵件獲取協議,即交互式郵件存取協議,它是跟POP3類似郵件訪問標準協議之一。不同的是,開啟了IMAP后,在電子郵件客戶端收取的郵件仍然保留在服務器上,同時在客戶端上的操作都會反饋到服務器上,如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的。
IMAP的一個與POP3的區別是:IMAP它只下載郵件的主題,并不是把所有的郵件內容都下載下來,而是你郵箱當中還保留著郵件的副本,沒有把你原郵箱中的郵件刪除,你用郵件客戶軟件閱讀郵件時才下載郵件的內容。較好支持這兩種協議的郵件客戶端有:ThunderMail,Foxmail,outlook等。
Mime協議
由于SMTP這個協議開始是基于純ASCⅡ文本的,在二進制文件上處理得并不好。后來開發了用來編碼二進制文件的標準,如MIME,以使其通過SMTP來傳輸。今天,大多數SMTP服務器都支持8位MIME擴展,它使二進制文件的傳輸變得幾乎和純文本一樣簡單。
郵件發送流程
發信人在用戶代理上編輯郵件,并寫清楚收件人的郵箱地址;
用戶代理根據發信人編輯的信息,生成一封符合郵件格式的郵件;
用戶代理把郵件發送到發信人的郵件服務器上,郵件服務器上面有一個緩沖隊列,發送到郵件服務器上面的郵件都會加入到緩沖隊列中,等待郵件服務器上的SMTP客戶端進行發送;
發信人的郵件服務器使用SMTP協議把這封郵件發送到收件人的郵件服務器上
收件人的郵件服務器收到郵件后,把這封郵件放到收件人在這個服務器上的信箱中;
收件人使用用戶代理來收取郵件。首先用戶代理使用POP3協議來連接收件人所在的郵件服務器,身份驗證成功后,用戶代理就可以把郵件服務器上面的收件人郵箱里面的郵件讀取出來,并展示給收件人。
Java和郵件
JavaMail
最早期使用Java Mail進行發送郵件
在后來有了Spring,一切變的更簡單
Spring Mail
貌似幾句就搞定了,可以看出Spring的力量還是很強大的。
Spring Boot And Mail
再到了后來,Spring Boot就出現了,更加簡單了郵件發送的步驟,想了解如何使用Spring Boot發送郵件看這里:springboot(十):郵件服務
HTTP TCP/IP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。