SMTP 服務器設置、使用和最佳實踐

已發表: 2022-04-08

曾經想知道電子郵件實際上是如何工作的,當您發送一封電子郵件並在幾秒鐘內它們進入收件人的收件箱時,這種情況背後的技術是簡單郵件傳輸協議 (SMTP)。 使用 IMAP/POP3 服務器接收電子郵件後如何將電子郵件存儲在服務器上是另一個時代的故事,現在,我們將介紹 SMTP,在本文結束時,我們希望您對 STMP 協議、SMTP 服務器有一個完整的了解, 常用選項以及如何確保您的電子郵件完成後進入垃圾郵件。

目錄
什麼是 SMTP?
什麼是 SMTP 服務器?
SMTP 如何工作?
通用 SMTP 端口和地址
常用 SMTP 服務器名稱
批量 SMTP 服務器提供程序設置
在 WordPress 中使用 SMTP 服務器
在 Linux 上設置自託管 SMTP 服務器
使用 SMTP 服務器

什麼是 SMTP?

簡單郵件傳輸協議 (SMTP) 是用於發送電子郵件的協議,它定義了一個通用標準,以便任何 SMTP 服務器可以與 Internet 上的任何其他 SMTP 服務器或 POP3/IMAP 服務器進行通信,並且它們可以相互理解。 您可以說它確保參與電子郵件傳輸的不同實體使用共同語言。

什麼是 SMTP 服務器?

SMTP 協議需要由應用程序提供,該應用程序響應那些希望發送電子郵件或中繼電子郵件的 SMTP 請求的應用程序稱為 SMTP 服務/SMTP 中繼。 您可以將其分為兩種類型,如下所示,除了細微的區別外,兩者基本相同 -

  • SMTP 服務器:與 SMTP 中繼相同,但主要在接收域與服務器域相同時使用。 這些通常與 gmail.com、yahoo.com 等免費電子郵件服務一起使用。
  • SMTP 中繼服務器:這也是一個服務器,但當源電子郵件和目標電子郵件域與 SMTP 服務器域不同時使用此術語。 一個例子可以是提供這些的 SendGrid 或 SendInBlue。這些服務器主要是郵件的路由器。

Fake SMTP Servers : – 這些服務器主要用於開發人員的測試,它們基本上是包羅萬象的服務器,允許用戶在不實際發送任何電子郵件的情況下查看電子郵件在收件人端的外觀。 您可以安裝 MailHog 或 MailCatcher 等本地應用程序,也可以使用 Mailtrap 或我們的本地工具等提供的雲。

SMTP 如何工作?

以下是發送電子郵件過程如何使用 SMTP 的通用指南。

  • 想要從 [email protected] 到 [email protected] 發送電子郵件的用戶使用他的電子郵件客戶端草擬帶有主題和正文的電子郵件,然後按發送。
  • 一旦用戶按下發送,電子郵件客戶端將連接到配置的 SMTP 服務器,現在讓我們假設它是 smtp.source.com 。 客戶端和 SMTP 服務器進行握手,如果需要授權,則客戶端將提供相同的憑據。
  • 握手後,電子郵件客戶端發送收件人地址,在我們的例子中是 [email protected],主題和正文。
  • 如果它是我們的用戶發送給同一域中的某人,那麼我們的服務器將簡單地將其在內部轉發到本地接收服務器。
  • 接下來,使用 MX 記錄的 DNS 請求的 SMTP 服務器找出其 SMTP 服務器正在運行的收件人 IP 或域地址。
  • 接下來,它連接到接收者的 SMTP 地址並嘗試發送電子郵件。
  • 收件人電子郵件服務器驗證它是否可以處理轉發給它的電子郵件。 如果一切順利,它會將其轉發到傳入的 IMAP 或 POP3 服務器。

通用 SMTP 端口和地址

在大多數情況下,SMTP 地址將是您嘗試連接到的域前面的郵件或 smtp 前綴。 這些也是由 DNS 中的郵件交換 (MX) 記錄指定的,這些記錄將客戶端引導到郵件服務器,該郵件服務器應該處理如何路由電子郵件消息。

要查找 SMTP 服務器的地址,您可以使用 dig 命令

然後,如果需要,您可以使用 dig 命令查找 IP 地址

連接的端口並不是那麼簡單,服務器和中繼通常有一組不同的端口可以連接,每個端口都是超時來滿足特定要求的。

SMTP 端口

端口號描述信息
25 標準 SMTP 端口它應該主要用於電子郵件中繼
465 已棄用的 SMTP 端口用於安全 SMTP,使用 SSL 進行加密。 避免使用。
587 現代安全 SMTP 端口大多數現代電子郵件客戶端都會使用它,它使用 TLS 加密。
2525 備用非標準 SMTP 端口這被用作 587 的替代品,以防其被阻止。

在大多數情況下,您將根據需要使用端口 587。

常用 SMTP 服務器名稱

SMTP 服務器的常用地址以 smtp 開頭。 或郵件。 使用域名,有些可能還有 IP 地址。 我們在下面列出了一些常見的及其詳細信息 -

服務名稱SMTP 服務器港口
谷歌郵件smtp.gmail.com 587
Outlook.com smtp.live.com 587
Office365.com smtp.office365.com 587
雅虎郵箱smtp.mail.yahoo.com 465
雅虎郵箱加plus.smtp.mail.yahoo.com 465
雅虎英國smtp.mail.yahoo.co.uk 465
雅虎德國smtp.mail.yahoo.com 465
雅虎澳大利亞/新西蘭smtp.mail.yahoo.com.au 465
氧氣smtp.o2.ie 25
O2.uk smtp.o2.co.uk 25
美國在線smtp.aol.com 587
美國電話電報公司smtp.att.yahoo.com 465
[email protected] smtp.ntlworld.com 465
英國電信連接pop3.btconnect.com 25
英國電信開放世界mail.btopenworld.com 25
英國電信互聯網mail.btinternet.com 25
橙子smtp.orange.net 25
Orange.uk smtp.orange.co.uk 25
瓦納杜英國smtp.wanadoo.co.uk 25
熱郵件smtp.live.com 465
O2 在線德國mail.o2online.de 25
T-在線德國securesmtp.t-online.de 587
1&1 (1and1) smtp.1and1.com 587
1&1 德國smtp.1und1.de 587
康卡斯特smtp.comcast.net 587
威瑞森傳出的.verizon.net 465
Verizon(雅虎託管) 傳出.yahoo.verizon.net 587
Zoho Mail smtp.zoho.com 465
郵件.com smtp.mail.com 587
GMX.com smtp.gmx.com 465
[電子郵件保護] 由 USA.NET smtp.postoffice.net 465

批量 SMTP 服務器提供程序設置

如果您想發送多封電子郵件會發生什麼,比如 10000 K 封電子郵件,那麼您將需要像 Bulk SMTP 中繼這樣的東西,它們還將為您提供 API 和其他功能,如交付跟踪、打開率等。還可以幫助您發送像 SMTP 一樣快的電子郵件作為協議有點慢。

如果數量不是很大,那麼您可以使用我們的免費 SMTP 服務器提供商列表來做出選擇。

如果您想向您的大型用戶群發送電子郵件,或者可能用於電子郵件營銷,我們在下面列出了各種提供商的價格。

小販免費/月每日限額付費計劃評論
發送藍色9000 300 10000 美元 25 美元到 100 萬美元 499 美元最好的免費
TurboSMTP 6000 200 50k 為 14.95,200 萬為 979.95。 12個月6000/月
阿里巴巴直郵6000 200 每 1000 封電子郵件 .00029
佩皮郵報3000 100 15 萬美元 25 美元,200 萬美元 445 美元
發送網格3000 100 5 萬封電子郵件 14.95 美元,15 萬封電子郵件 749 美元
晶石郵報3000 100 50K 20 美元到 100 萬美元 525 美元
彈性電子郵件3000 100 像 Amazon SES 一樣的成本核算低成本付費選項
亞馬遜 SES 62000 .0001 表示 1000 封電子郵件從 AWS EC2 服務器發送的最便宜、免費的產品之一
郵件15000 500 Gsuite 是高級選項域名將是 gmail.com ,可能導致帳戶暫停。

在 WordPress 中使用 SMTP 服務器

WordPress 為 Internet 上幾乎 40% 的網站提供支持,默認情況下,它使用 PHP Mail 發送事務性電子郵件,如果未配置,則使用 sendmail ,這在涉及交付的情況下可能會遇到問題,因此我們建議使用可以使用 SMTP 設置或使用 SMTP API 的 WordPress 插件。

默認情況下,WordPress 使用 PHP 郵件發送電子郵件,如果配置正確就足夠了,但在大多數情況下,使用第三方服務更容易,因為大多數共享主機不允許直接訪問控制台來檢查正在發生的事情以及您的主機 IP 可能由於垃圾郵件而被列入黑名單,因為服務器上可能還有其他用戶(在通用共享主機的情況下)可能不正常並導致您的 IP 被列入黑名單。 被列入黑名單是指您的服務器的 IP 被放入已知垃圾郵件發送者的全球列表中,這使您的郵件更難通過,您可以在此處查看您的狀態。

對於 WordPress,我們推薦 Wp Mail SMTP 插件,它易於配置、設置並支持包括 Gmail 在內的許多不同供應商,還有一個選項來記錄所有已發送的電子郵件。 對於大多數用戶來說,免費計劃應該足夠了。

您可以輕鬆地從 WordPress 內部安裝它,甚至可以從 WordPress 的網站下載它。 它有一個高級計劃,但對於大多數用戶來說,免費應該已經足夠了。

在 Linux 上設置自託管 SMTP 服務器

快速 MTA 比較,我們將選擇 Postfix,因為我們將使用 linux –

如果你是... 郵箱進出口發送郵件後綴筆記
經驗不足
0 3 1 3 Exim 和 Postfix 有很好的文檔和清晰的例子
擔心安全
3 2 0 3 Postfix 既安全又現代; qmail 是安全的,但非常陳舊且脾氣暴躁; Exim 符合不同的標準(見上文。)
依靠 Sendmail 過濾器
0 1 3 2 Postfix 可以運行 milters; 可以使用等效的 Exim 路由器/過濾器腳本
想要最少的麻煩
0 3 0 3 Sendmail 有一些簡單的前端,但你越深入,它就越糟糕。 Postfix 和 Exim 更容易預測。
資源受限
3 2 1 2 有關其他評論,請參閱下面的嵌入式應用程序
在 Windows 上
0 2 3 0 Sendmail 有一個本地 Windows 端口; Exim 在 Cygwin 發行版中
需要商業支持
1 3 3 3 所有 MTA 都有勝任的公司; qmail 本來就不太支持這麼舊

Postfix 是一個郵​​件傳輸代理 (MTA),可以充當 SMTP 服務器或客戶端來發送或接收電子郵件。 它易於設置和配置,我們自己使用它來滿足我們的大部分需求,也可以將其設置為通過第三方電子郵件服務轉發電子郵件的中介。 我們將僅介紹基本設置並發送您的第一封電子郵件。

最簡單的設置包括安裝 postfix,您應該一切順利。

這樣的基本設置在技術上可以正常工作,但您的電子郵件可能會進入垃圾郵件,為了迎合這種情況並確保更​​好的電子郵件送達率,我們有另一個指南,我們在其中添加了其他要求,例如 DKIM 或 SPF,這些要求是確保您的電子郵件正常運行所必需的通過。 但是,除非有充分的理由,否則我們不建議您運行您自己的電子郵件服務器。

此過程假定您有一個新安裝的 Ubuntu 20.04,並且您可以使用命令行 Linux,如果不是,我們建議您使用現有的 SMTP 提供程序之一。 我們將在 Ubuntu 20.04 服務器上設置 postfix,並使用它向我們自己的虛擬服務發送一封電子郵件,以測試它是否有效。

首先,我們將為 apt 包管理器發出更新緩存命令

sudo apt update

接下來,我們將使用以下命令安裝 postfix –

sudo apt install postfix

安裝會打開一堆提示,請進行以下選擇 -

  • 一般類型的郵件配置? :為此,我們將選擇一個 Internet 站點,因為這符合我們的基礎設施需求。
  • 系統郵件名稱:如果用戶未指定發件人域,這是用於發送電子郵件的基本域。 因此,如果您從 user1 發送電子郵件並且未指定域,則這將被添加到電子郵件的後綴中。 因此,如果給出 example.com,它將從 [email protected] 發送電子郵件。

那應該照顧基本配置。 如需完整設置,請遵循我們的郵件服務器設置指南。 現在端口 25 應該可用,您可以使用任何命令檢查它的開放情況 -

我們正在尋找這樣的東西

master 2575 root 13u IPv4 30244 0t0 TCP *:25 (LISTEN)
master 2575 root 14u IPv6 30245 0t0 TCP *:25 (LISTEN)

如果您甚至需要重新配置設置,只需運行命令 -

我們都設置好我們的 SMTP 服務器應該啟動並運行。 接下來,我們可以向 Internet 上的某些用戶發送電子郵件,或者捕獲所有電子郵件以進行測試。

使用 SMTP 服務器

通常,電子郵件客戶端是我們大多數人與 SMTP 服務器交互的最常見方式,但您也可以使用 telnet 直接與其交互。 我們將從這種方法開始,因為它很酷。

在 linux 中使用 telnet 發送郵件

通過輸入以下命令連接到本地 SMTP 服務器 -

你會看到這樣的東西——

如果您無法連接,請確保 postfix 正在運行並檢查端口 25 是否打開。

現在讓我們發送一封電子郵件說 [email protected](捕獲所有電子郵件)。

去檢查[email protected]的收件箱中是否收到了電子郵件,或者如果您使用了其他收件人,可以在其收件箱中檢查它。

從 linux 命令行發送電子郵件

在 linux 上,我們可以使用 sendmail 命令快速發送電子郵件。

我希望你喜歡我的文章,如果你覺得我遺漏了一些觀點或在某個地方有錯誤,請告訴我,我會在這裡更新。