欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手工體驗smtp和pop3協(xié)議 郵件實現(xiàn)詳解(二)

 更新時間:2017年10月16日 09:51:49   作者:YSOcean  
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下

  上篇博客我們簡單介紹了電子郵件的發(fā)送和接收過程,對參與其中的郵件服務(wù)器,郵件客戶端軟件,郵件傳輸協(xié)議也有簡單的介紹。我們知道電子郵件需要在郵件客戶端和郵件服務(wù)器之間,以及兩個郵件服務(wù)器之間進(jìn)行傳遞必須遵守的規(guī)則便是郵件傳輸協(xié)議。SMTP協(xié)議定義了郵件客戶端軟件和SMTP郵件服務(wù)器之間,以及兩臺SMTP郵件服務(wù)器之間的通信規(guī)則。POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則。這篇博客我們就來手工體驗SMTP和POP3協(xié)議的奧秘。

1、使用Smtp協(xié)議手工發(fā)送郵件

  SMTP協(xié)議:全稱為 Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議。它定義了郵件客戶端軟件和SMTP郵件服務(wù)器之間,以及兩臺SMTP郵件服務(wù)器之間的通信規(guī)則。SMTP協(xié)議的通信雙方采用一問一答的命令/響應(yīng)形式進(jìn)行對話,SMTP協(xié)議分為標(biāo)準(zhǔn)SMTP協(xié)議和擴(kuò)展SMTP協(xié)議,標(biāo)準(zhǔn)SMTP協(xié)議是1982年在RFC821 文檔中定義的,而擴(kuò)展SMTP協(xié)議是1995年在RFC1869 文檔中定義的。擴(kuò)展SMTP協(xié)議在標(biāo)準(zhǔn) SMTP協(xié)議基礎(chǔ)上的改動非常小,主要增加了郵件安全方面的認(rèn)證功能,現(xiàn)在我們說的SMTP協(xié)議基本上都是擴(kuò)展SMTP協(xié)議。

  RFC1869文檔參考如下:https://tools.ietf.org/html/rfc1869

  SMTP 協(xié)議中一共定義了18條命令,但是發(fā)送一封電子郵件的過程通常只需要6條命令,我將這6調(diào)命令/響應(yīng)的語法格式總結(jié)如下:

大家可能光看這些命令不太清楚,下面我總結(jié)了一下使用Smtp協(xié)議手工發(fā)送郵件的步驟:

 ?、?、和SMTP服務(wù)器建立連接,telnet smtp.163.com 25。這條命令是和163郵箱建立連接,如果是和QQ,那么將163換成qq即可,同理別的郵箱也是一樣。后面的數(shù)字25表示SMTP服務(wù)器的端口號。

 ?、凇hlo 發(fā)件人用戶名。這沒什么好說的,就是告訴SMTP服務(wù)器發(fā)送者的用戶名。

 ?、?、選擇登錄認(rèn)證方式,一般我們在第二步執(zhí)行完后,會提示有幾種認(rèn)證方式,我們一般選擇的是login。即輸入命令:auth login

 ?、?、分別輸入經(jīng)過Base64加密后的用戶名和密碼。注意必須是要經(jīng)過 Base64加密后的用戶名和密碼,大家可以網(wǎng)上在線轉(zhuǎn),也可以用后面給的代碼進(jìn)行轉(zhuǎn)換。

 ?、荨⒅该鬣]件的發(fā)送人和收件人

    mail from:<xxx@163.com>

    rcpt to:<xxx@qq.com>

 ?、?、輸入data命令,然后編寫要發(fā)送的郵件內(nèi)容,郵件的編寫格式規(guī)則如下:

    第一步:輸入data

    第二步:輸入郵件內(nèi)容 

from:<xxx@163.com>    ----郵件頭發(fā)件人地址
to:<xxx@qq.com>       ----郵件頭收件人地址
subject:hello world    ----郵件頭主題
               -----空行
This is the first email sent by hand using the SMTP protocol   ----郵件的具體內(nèi)容

  ⑦、輸入“.”表示郵件內(nèi)容輸入完畢

  ⑧、輸入quit命令斷開與郵件服務(wù)器的連接

  下面我用動圖的形式給大家展示用Smtp協(xié)議手工發(fā)送郵件的前面三個步驟:

  上面我執(zhí)行到第4步,剩下的步驟我就直接截圖了:

至此,我們一封郵件便發(fā)出去了,我們先登陸到QQ郵箱查看(后面我們通過POP3服務(wù)器來查收):

2、SMTP發(fā)送郵件遇到問題

 ?、佟?zhí)行 telent smtp.163.com 25 命令時,報如下錯誤:

解決辦法是:控制面板----程序------啟動或關(guān)閉 Windows 功能----將Telnet勾上,然后點(diǎn)擊確定即可

 ?、凇⒂脩裘兔艽a必須要base64加密,在線網(wǎng)站:http://www1.tc711.com/tool/BASE64.htm

  ③、每一步驟之間輸入命令要盡量快,不然會自動斷開連接

  ④、我上面是和163郵箱鏈接的,如果是和qq郵箱連接,會有一些問題。首先第一步建立連接為 telnet smtp.qq.com 587,端口號為587,不是25。還有第三步,選擇認(rèn)證方式,在執(zhí)行 auth login之前,先執(zhí)行:starttls。還有第四步,輸入用戶名和授權(quán)碼,而不是用戶名和密碼,授權(quán)碼的獲取可以參考:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

 ?、?、輸入郵件內(nèi)容時,空行不要忘記了,還有結(jié)束輸入是以“.”結(jié)束的。

3、使用POP3協(xié)議手工接收郵件    

  郵件服務(wù)商專門為每個用戶申請的電子郵箱提供了專門的存儲空間,SMTP 服務(wù)器將接收到的郵件保存到相應(yīng)用戶的存儲空間。用戶要從郵件服務(wù)提供商提供的電子郵箱中獲取自己的電子郵件,那么就需要POP3 郵件服務(wù)器來完成。

  POP3協(xié)議:全稱為 Post Office Protocol,它定義了郵件客戶端程序和POP3郵件服務(wù)器的通信規(guī)則。

  下面我們演示用POP3協(xié)議手工接收郵件:

  這是在 163 郵箱的一份郵件。(這里沒有用qq郵箱演示是因為qq有很多安全限制,步驟比較繁瑣,大家遇到問題了可以留言問我)

第一步:用telnet 連接POP3的163郵箱服務(wù)器

  

接下來收取郵件:

相關(guān)命令的詳細(xì)解釋如下:

4、總結(jié)

  上面就是通過SMTP協(xié)議發(fā)送郵件,以及通過POP3協(xié)議收取郵件的全部過程。上面我們操作的主體都是163郵箱,換成sina,sohu等郵箱都是可以的。除了qq郵箱會有各種問題,其中一些問題我已經(jīng)在文中給出了,大家如果還遇到什么問題,歡迎留言交流。

  理解手工實現(xiàn)SMTP和POP3收發(fā)郵件是很重要的,下篇博客會講如何通過代碼來實現(xiàn)收發(fā)郵件,以及后面內(nèi)嵌圖片,網(wǎng)站等花式寫郵件的講解。如果我們這篇博客理解透徹了,后面的內(nèi)容理解起來就會事半功倍了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring scheduled單線程和多線程使用過程中的大坑

    spring scheduled單線程和多線程使用過程中的大坑

    本文主要介紹了spring scheduled單線程和多線程使用過程中的大坑,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot整合SpringSecurity和JWT和Redis實現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證

    SpringBoot整合SpringSecurity和JWT和Redis實現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證

    Spring Security是一個可以為Java應(yīng)用程序提供全面安全服務(wù)的框架,同時它也可以輕松擴(kuò)展以滿足自定義需求,本文主要介紹了SpringBoot整合SpringSecurity和JWT和Redis實現(xiàn)統(tǒng)一鑒權(quán)認(rèn)證,感興趣的可以了解一下
    2023-11-11
  • 詳解JavaEE中Apollo安裝使用小結(jié)

    詳解JavaEE中Apollo安裝使用小結(jié)

    這篇文章主要介紹了詳解JavaEE中Apollo安裝與使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Flutter瀑布流仿寫原生的復(fù)用機(jī)制詳解

    Flutter瀑布流仿寫原生的復(fù)用機(jī)制詳解

    這篇文章主要給大家介紹了關(guān)于Flutter瀑布流仿寫原生的復(fù)用機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用flutter具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-07-07
  • 全面理解java中的異常處理機(jī)制

    全面理解java中的異常處理機(jī)制

    下面小編就為大家?guī)硪黄胬斫鈐ava中的異常處理機(jī)制。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Spring Bean常用的的裝配方式詳解

    Spring Bean常用的的裝配方式詳解

    這篇文章主要介紹了Spring Bean常用的的裝配方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • IDEA實現(xiàn) springmvc的簡單注冊登錄功能的示例代碼

    IDEA實現(xiàn) springmvc的簡單注冊登錄功能的示例代碼

    這篇文章主要介紹了IDEA實現(xiàn) springmvc的簡單注冊登錄功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • springboot?@Async?注解如何實現(xiàn)方法異步

    springboot?@Async?注解如何實現(xiàn)方法異步

    這篇文章主要介紹了springboot?@Async?注解如何實現(xiàn)方法異步,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot項目整合MybatisPlus并使用SQLite作為數(shù)據(jù)庫的過程

    SpringBoot項目整合MybatisPlus并使用SQLite作為數(shù)據(jù)庫的過程

    SQLite是一個緊湊的庫,啟用所有功能后,庫大小可以小于 750KiB, 具體取決于目標(biāo)平臺和編譯器優(yōu)化設(shè)置, 內(nèi)存使用量和速度之間需要權(quán)衡,這篇文章主要介紹了SpringBoot項目整合MybatisPlus并使用SQLite作為數(shù)據(jù)庫,需要的朋友可以參考下
    2024-07-07
  • 解決Spring使用@MapperScan問題

    解決Spring使用@MapperScan問題

    這篇文章主要介紹了解決Spring使用@MapperScan問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論