TCP/IP協議:最流行的電子郵件協議SMTP(簡單郵件傳輸協議)詳解

SMTP 是一種電子郵件協議,用于通過互聯網從一個電子郵件帳戶向另一個電子郵件帳戶發送電子郵件。它是TCP/IP協議應用層的一部分。作為一種電子郵件協議,它建立了不同電子郵件客戶端和帳戶之間輕松信息交換的規則。這樣,簡單郵件傳輸協議就可以實現廣泛的電子郵件傳送。

文章目錄

    • 什么是 SMTP 服務器?
    • SMTP工作原理
    • SMTP 命令
    • SMTP 協議端口
    • 比較 SMTP、IMAP 和 POP
    • SMTP協議優點

需要注意的是,SMTP 不是郵件檢索協議,收件人仍然需要檢索郵件。這意味著它將電子郵件發送到電子郵件提供商的郵件服務器,但使用不同的協議從郵件服務器檢索該電子郵件,以便收件人可以閱讀它。

SMTP 與IMAP(互聯網消息訪問協議)和 POP(郵局協議)一樣,是最流行的電子郵件協議之一。許多知名的電子郵件客戶端(例如 Gmail、Outlook 和 Apple Mail)都支持 SMTP 電子郵件協議來發送消息。

在這里插入圖片描述

什么是 SMTP 服務器?

SMTP服務器是能夠利用SMTP協議發送電子郵件的郵件服務器。電子郵件客戶端直接與電子郵件提供商的 SMTP 服務器連接以啟動發送電子郵件。
有兩種不同的 SMTP 服務器類型:

  1. 常規 SMTP 服務器
    此類型通常用于發送標準個人電子郵件。此外,此類服務器由電子郵件提供商(例如 Gmail)提供。需要了解的重要一點是,此類服務器通常有嚴格的每日發送限制。
  2. 專用 SMTP 服務器
    這種類型的 SMTP 服務器非常有用,因為它可以處理批量電子郵件。許多公司也依賴此類服務器來處理交易電子郵件,例如確認購買、確認新聞通訊訂閱或重置忘記密碼的消息。

SMTP工作原理

簡單郵件傳輸協議創建了在電子郵件客戶端和郵件服務器之間交換數據的過程。以下是它如何幫助電子郵件傳輸:

  1. 打開 SMTP 連接
    由于 SMTP 使用TCP(傳輸控制協議)作為傳輸協議,因此需要在客戶端和服務器之間建立連接。然后電子郵件客戶端可以使用 SMTP 命令(HELO 或 EHLO)啟動電子郵件發送過程。
  2. 傳輸電子郵件數據
    客戶端發送多個帶有電子郵件內容的命令,例如電子郵件標題和電子郵件正文。
  3. 郵件傳輸代理 (MTA)
    服務器運行郵件傳輸代理 (MTA) 程序來檢查收件人電子郵件地址的域名。如果與發件人的 IP 地址不同,它將查詢域名系統 (DNS)以查找收件人的 IP 地址。
  4. 關閉連接
    一旦數據傳輸完成,客戶端通知服務器。然后最后一步是服務器關閉連接。這樣,在客戶端打開新的 SMTP 連接之前,服務器不會收到任何其他電子郵件信息。

SMTP 命令

SMTP 命令是文本指令,告訴客戶端或服務器如何操作數據以及如何處理數據。此外,它們還通過正確地將傳輸的數據提供給服務器來幫助客戶端。

  • HELO/EHLO:這些命令用于“Hello”并在客戶端和服務器之間創建 SMTP 連接。
EHLO example.com
  • MAIL FROM:這提供了有關發送電子郵件的人的詳細信息。
MAIL FROM: <sender@example.com>
  • RCPT TO:此命令用于指定電子郵件的收件人。如果有多個接收者,則客戶端可以多次發送此命令。
RCPT TO: <recipient@example.com>
  • DATA:準備并啟動客戶端和服務器之間的信息傳輸。
  • RSET:此命令重置連接并清除所有先前傳輸的數據,而不關閉 SMTP 連接。當客戶端錯誤地發送他們想要發送的信息時,通常會使用 RSET。
  • QUIT:使用此命令,連接結束。

SMTP 協議端口

可以使用多個 SMTP 端口作為通信端點來發送電子郵件。在以前,簡單郵件傳輸協議僅使用一個端口:25。現在,它可以使用其他端口,即 465、587 和 2525。

  • 端口 25:它是 SMTP 服務器之間連接的主要使用端口。然而,它經常被云服務提供商和 ISP 阻止,因為犯罪分子不斷濫用它發送大量垃圾郵件。
  • 端口 465: 它供帶有安全套接字層 (SSL) 的 SMTP 使用。但是,現代電子郵件系統不再使用此端口。
  • 端口 587:它現在恰好是現代應用程序用于電子郵件提交的最佳選擇。通過此端口的 SMTP 連接實施 TLS 加密。
  • 端口 2525:它并未與簡單郵件傳輸協議正式關聯,但如果常用端口不可用,它可以作為替代方案。

比較 SMTP、IMAP 和 POP

SMTP(簡單郵件傳輸協議)、IMAP(互聯網消息訪問協議)和 POP(郵局協議)是電子郵件通信中使用的三種基本協議。

SMTP 負責發送電子郵件。它將傳出消息從客戶端傳輸到電子郵件服務器,然后電子郵件服務器將消息轉發到目的地。這對于可靠的電子郵件傳遞至關重要。

另一方面,IMAP 和 POP 是接收電子郵件的協議。IMAP(互聯網消息訪問協議)允許用戶直接在電子郵件服務器上訪問和管理他們的電子郵件。它可以跨多個設備同步電子郵件,確保一臺設備上所做的更改反映在所有其他設備上。

相比之下,POP(郵局協議)將電子郵件從服務器下載到客戶端設備,并且通常將其從服務器中刪除。它適合想要在本地存儲電子郵件的用戶。

本質上,SMTP 發送電子郵件,而 IMAP 和 POP 接收電子郵件。IMAP 提供從多個設備的同步和訪問,而 POP 主要側重于將電子郵件下載到單個設備

SMTP協議優點

以下是 SMTP(簡單郵件傳輸協議)的一些主要優點:

  1. 簡單

它提供了在特定網絡中的不同設備之間通過電子郵件進行通信的最直接的方法。最終用戶只需輸入電子郵件并將其發送到收件人的電子郵件地址。然后,郵件將進行從 SMTP 服務器到收件人設備的交換服務器的簡單過程。

  1. 電子郵件快速發送

由于簡單郵件傳輸協議是基于簡單的平臺設計的,因此電子郵件的發送速度非常快。此外,使用一臺 SMTP 郵件服務器,您可以確保將郵件快速發送給多個收件人。

  1. 可靠性

該協議還為您發出的電子郵件提供可靠性。如果郵件未成功發送,SMTP 服務器將重新發送確切的電子郵件,直到傳輸完成。使用其他發送電子郵件的方式,您可能需要嘗試多次才能傳輸電子郵件。

  1. 專用服務器

通過 SMTP(簡單郵件傳輸協議),企業有機會實施和使用負責處理外發電子郵件的專用服務器。網絡郵件提供商和ISP無法真正提供排他性,這可能會導致電子郵件傳輸問題。專用 SMTP 服務器在本地維護,可以選擇配置以處理任何類型的重要和敏感??電子郵件。

SMTP(簡單郵件傳輸協議)仍然是最常用標準協議之一。需要發送大量電子郵件的大型企業往往都會自建自己專有的SMTP服務器。

但是電子郵件也面臨巨大的安全風險,如何避免各類垃圾郵件預計釣魚欺詐。可以參考如下博文:

  • 安全知識普及:什么是垃圾郵件和網絡釣魚欺詐
  • 在 Exchange Server 的邊緣傳輸服務器上配置垃圾郵件過濾
  • 善用exchange server自帶的反垃圾郵件功能過濾垃圾郵件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168072.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168072.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168072.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求最小的起始正整數

題目描述 給你一個整數數組 nums 。你可以選定任意的 正數 startValue 作為初始值。 你需要從左到右遍歷 nums 數組&#xff0c;并將 startValue 依次累加上 nums 數組中的值。 請你在確保累加和始終大于等于 1 的前提下&#xff0c;選出一個最小的 正數 作為 startValue 。…

【Rust 日報】2023-11-23 - egui 0.24 發布

項目 - egui 0.24 發布 egui 是一個易于使用的 Rust GUI 庫&#xff0c;支持在本地環境和瀏覽器中運行。 egui 0.24 的重要新特性是多視窗功能。在支持的后端上&#xff08;如eframe&#xff09;&#xff0c;用戶可以利用全新的 viewport API 同時生成多個本機窗口。 此外&…

Git 的基本概念和使用方式。

Git 是一個開源的分布式版本控制系統&#xff0c;它可以記錄代碼的修改歷史&#xff0c;跟蹤文件的版本變化&#xff0c;并支持多人協同開發。Git 的基本概念包括&#xff1a; 1. 倉庫&#xff08;Repository&#xff09;&#xff1a;存放代碼和版本歷史記錄的地方。 2. 分支…

ArkUI開發進階—@Builder函數@BuilderParam裝飾器的妙用與場景應用

ArkUI開發進階—@Builder函數@BuilderParam裝飾器的妙用與場景應用 HarmonyOS,作為一款全場景分布式操作系統,為了推動更廣泛的應用開發,采用了一種先進而靈活的編程語言——ArkTS。ArkTS是在TypeScript(TS)的基礎上發展而來,為HarmonyOS提供了豐富的應用開發工具,使開…

Educational Codeforces Round 158 (Rated for Div. 2)(A~E)(貪心,樹形DP)

A - Line Trip 題意&#xff1a;有一條路&#xff0c;可以用一條數線來表示。你位于數線上的點 0 &#xff0c;你想從點 0 到點 x &#xff0c;再回到點 0。你乘汽車旅行&#xff0c;每行駛 1個單位的距離要花費 1 升汽油。當您從點 0出發時&#xff0c;汽車已加滿油(油箱中的…

麒麟linux離線安裝dotnet core

1. 下載 dotnet core,以3.1為例 下載地址: 下載 .NET Core 3.1 (Linux、macOS 和 Windows) 查看linux cpu類型,然后根據類型下載 uname -m #結果是: aarch64 2. 放到指定目錄,比如:/usr/dotnet 3. 解壓dotnet-sdk-3.1.426-linux-arm64.tar.gz cd /usr/dotnet tar –zxvf a…

告別算法暗處:備案帶來的光明未來

在當今數字化時代&#xff0c;算法已經成為了企業發展和創新的關鍵推動力。然而&#xff0c;伴隨著算法的廣泛應用&#xff0c;數據隱私、知識產權和法規合規等問題也引發了越來越多的關切。為了解決這些問題&#xff0c;越來越多的公司開始意識到算法備案的重要性。本文將深入…

點云從入門到精通技術詳解100篇-基于深度學習的稀疏點云障礙物檢測(續)

目錄 3.1 連續幀點云空間特征融合 3.1.1 點云預處理 3.1.2 地面分割 3.1.3 自適應點云聚類

播放器開發(三):FFmpeg與SDL環境配置

學習課題&#xff1a;逐步構建開發播放器【QT5 FFmpeg6 SDL2】 環境配置 我這邊的是使用macOS&#xff1b;IDE用的是CLion&#xff1b;CMake構建&#xff0c;除了創建項目步驟、CMakeLists文件有區別之外的代碼層面不會有太大區別。 配置上只添加一下CMakeLists中FFmpeg和SD…

Ubuntu 22.04.3編譯AOSP13刷機

文章目錄 設備信息下載AOSP并切換分支獲取設備驅動編譯系統編譯遇到的問題Cannot allocate memoryUbuntu設置USB調試刷機參考鏈接 設備信息 手機&#xff1a;Pixel 4XL 下載AOSP并切換分支 在清華大學開源軟件鏡像站下載初始化包aosp-latest.tar。 解壓縮&#xff0c;切換到…

解決LocalDateTime傳輸前端為時間的數組

問題出現如下&#xff1a; 問題出現原因&#xff1a; 默認序列化情況下會使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用這個解析時就會打印出數組。 解決方法&#xff1a; 我在全文搜索處理方法總結如下&#xff1a; 1.前端自定義函數來書寫 ,cols: [[ //表頭{…

[ubuntu]ubuntu上如何徹底卸載C++的opencv而不影響下次安裝使用

問題場景&#xff1a;我在ubuntu上安裝編譯了opencv3.4.4之后我又想安裝opencv4.5.0結果裝上后&#xff0c;opencv庫在系統目錄很混亂導致出現cmake項目出現很多錯誤。因此又想卸載掉opencv3.4.4重新安裝opencv4.5.0進去。但是如何卸載呢&#xff1f;我們知道opencv在系統里面有…

Go事件管理器:簡單實現

關注公眾號【愛發白日夢的后端】分享技術干貨、讀書筆記、開源項目、實戰經驗、高效開發工具等&#xff0c;您的關注將是我的更新動力&#xff01; 在編程中&#xff0c;事件管理器是一種常見的工具&#xff0c;用于通過通知來觸發操作。在Go語言中&#xff0c;我們可以通過創建…

Langchain的Agents介紹

??覺得內容不錯的話&#xff0c;歡迎點贊收藏加關注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后續會繼續輸入更多優質內容?? &#x1f449;有問題歡迎大家加關注私戳或者評論&#xff08;包括但不限于NLP算法相關&#xff0c;linux學習相關&#xff0c;讀研讀博…

Redis -- 介紹

1、NoSQL: 指的是非關系型數據庫&#xff0c;主要分成四大類&#xff1a;鍵值存儲數據庫、列存儲數據庫、文檔型數據庫、圖形數據庫。 2、什么是Redis&#xff1a; Redis是一種基于內存的數據庫&#xff0c;一般用于做緩存的中間件。 3、Redis的主要的特點&#xff1a; 1、Rd…

C++ 多線程鎖

目錄 1. mutex2. lock_guard3. unique_lock 是 lock_guard 的升級加強版4. condition_variable5. 調用 #include “thread” #include “mutex” #include “iostream” //! std::thread //! jion 阻塞式&#xff0c; .join()后面的代碼等待線程結束 //! detach 非阻塞式&#…

一、TIDB基礎

TIDB整個邏輯架構跟MYSQL類似&#xff0c;如下&#xff1a; TIDB集群&#xff1a;相當于MYSQL的數據庫服務器&#xff0c;區別是MYSQL數據庫服務器為單進程的&#xff0c;TIDB集群為分布式多進程的。 數據庫&#xff1a;同MYSQL數據庫&#xff0c;數據庫屬于集群&#xff0c;…

SSL握手失敗的解決方案

一、SSL握手失敗的原因&#xff1a; 1&#xff0c;證書過期&#xff1a;SSL證書有一個有效期限&#xff0c;如果證書過期&#xff0c;就會導致SSL握手失敗。 2&#xff0c;證書不被信任&#xff1a;如果網站的SSL證書不被瀏覽器或操作系統信任&#xff0c;也會導致SSL握手失敗…

線性代數的藝術

推薦一本日本網友Kenji Hiranabe寫的《線性代數的藝術》。這本書是基于MIT大牛Gilbert Strang教授的《每個人的線性代數》制作的。 雖然《線性代數的藝術》這本書僅僅只有12頁的內容&#xff0c;就把線性代數的重點全畫完了&#xff0c;清晰明了。 《線性代數的藝術》PDF版本&…

mysql 變量和配置詳解

MySQL 中還有一些特殊的全局變量&#xff0c;如 log_bin、tmpdir、version、datadir&#xff0c;在 MySQL 服務實例運行期間它們的值不能動態修改&#xff0c;也就是不能使用 SET 命令進行重新設置&#xff0c;這種變量稱為靜態變量。數據庫管理員可以使用前面提到的修改源代碼…