簡單郵件傳輸協議(SMTP)是用於在商業網絡和Internet上發送電子郵件的標准通信協議 。 SMTP最初是在二十世紀八十年代初開發的,並且仍然是全球使用最流行的協議之一。
電子郵件軟件通常使用SMTP進行發送,並使用郵局協議3(POP3)或Internet消息訪問協議(IMAP)協議來接收郵件。 儘管它的年齡,在主流使用中沒有真正的SMTP替代方案。
SMTP如何工作
所有現代的電子郵件客戶程序都支持SMTP 電子郵件客戶端中維護的SMTP設置包括SMTP 服務器的IP地址 (以及用於接收電子郵件的POP或IMAP服務器的地址)。 基於Web的客戶端將SMTP服務器的地址嵌入其配置中,而PC客戶端則提供允許用戶指定自己的服務器的SMTP設置。
物理SMTP服務器可能專門用於服務電子郵件通信,但通常與至少POP3以及其他代理服務器功能結合使用。
SMTP運行在TCP / IP之上,並使用TCP 端口號 25進行標准通信。 為了改進SMTP並幫助防止互聯網上的垃圾郵件,標準組織還設計了TCP端口587來支持協議的某些方面。 一些Web電子郵件服務(如Gmail)使用SMTP的非官方TCP端口465。
SMTP命令
SMTP標准定義了一組命令 - 在請求信息時將客戶端郵件發送到郵件服務器的特定類型郵件的名稱。 最常用的命令是:
- HELO和EHLO--在客戶端和服務器之間啟動新協議會話的命令。 EHLO命令請求它們使用它支持的任何可選的SMTP擴展進行響應
- MAIL - 發起發送電子郵件的命令
- RCPT - 為正在準備的當前消息的收件人提供一個電子郵件地址的命令
- DATA - 指示電子郵件消息傳輸開始的命令。 該命令啟動一系列一個或多個後續消息,每個消息包含一條消息。 序列中的最後一條消息是空的(僅包含句點(。)作為終止字符)來表示電子郵件的結尾。
- RSET - 在發送電子郵件的過程中(在發出MAIL命令之後),SMTP連接的任一端都可以在連接遇到錯誤時重置連接
- NOOP - 設計為一種ping的空(“無操作”)消息,以檢查會話的另一端的響應性
- 退出 - 終止協議會話
這些命令的接收者以成功或失敗代碼編號進行答复。
SMTP問題
SMTP缺少內置的安全功能。 互聯網垃圾郵件製造者過去曾經通過生成大量垃圾郵件並通過開放的SMTP服務器提供垃圾郵件來啟用SNMP。 多年來,針對垃圾郵件的防護措施已有所改善,但並非萬無一失。 此外,SMTP不會阻止垃圾郵件發送者設置(通過MAIL命令)假“發件人:”電子郵件地址。