Linux

是否可以在不通過中繼使用外部郵件提供商的情況下在 Google Cloud 實例上執行類似 postfix 的 SMTP 伺服器?

  • November 23, 2020

目標:需要安裝一個 SMTP 伺服器(最好是 postfix),它將消息發送到其他常見的郵件提供商,如 gmail、outlook、yahoo 等。

問題:Google Cloud 阻止使用 SMTP 埠 25(但不包括 465 或 587),並且僅提供有關如何使用外部郵件提供商的詳細資訊。另一種解決方法是創建一個 gmail 帳戶,將中繼配置為 smtp.gmail.com 並使用所述帳戶發送消息。這樣做的問題是,預計發送的消息量可能會超過中繼的每日消息限制。

試過:

  1. 使用預設後綴配置在Google云上的 ubuntu 18.04 上使用郵件發送消息,並且僅將“inet_protocols”更改為“ipv4”。這會在日誌中顯示超時消息。

後綴/smtp

$$ $$: 連接到 ALT2.ASPMX.L.GOOGLE.COM$$ x.x.x.x $$:25: 連接超時 2. 嘗試更改 master.cf 中的以下行

smtp inet - - 是 - - smtpd

smtp unix - - y - - smtp

587 inet - - 和 - - smtpd

587 unix - - y - - smtp

將“smtp_use_tls = yes”添加到 main.cf

並重新啟動後綴。這會將 postfix 監聽和發送消息放在埠 587 上,但它仍然提供相同的消息。

後綴/smtp

$$ $$: 連接到 ALT3.ASPMX.L.GOOGLE.COM$$ x.x.x.x $$:587: 連接超時 3. 使用與另一個託管服務中的 1 相同的配置發送消息(埠 25 未阻塞)。

有人說伺服器之間的 smtp 只能在埠 25 上工作,但我一直無法找到任何證實這一點的資訊,並且對郵件伺服器了解不多,不確定是否可以在 postfix 上為此配置另一個埠影響。

我是否只是在浪費時間嘗試在 Google Cloud 上進行配置,而應該更改託管服務?或者是否有某種方法可以配置 postfix 以在埠 25 被阻塞的情況下工作?

這是在 1982 年的RFC 821 附錄 A中首次決定的,此後一直如此。目前,TCP 埠 25 也是為此目的而分配的 IANA 。來自 SMTP RFC 5321

4.5.4.2。接收策略

SMTP 伺服器應始終嘗試在 SMTP 埠(由 IANA 指定為埠 25)上保持掛起的偵聽。這需要支持 SMTP 的多個傳入 TCP 連接。

您不能簡單地更改埠,因為其他 SMTP 伺服器沒有機制知道您正在使用非標準埠,並且您不能使用任何其他埠發送到其他伺服器。

正如他們的指南中所解釋的那樣,Google云不是為此而設計的:從實例發送電子郵件

使用標準電子郵件埠

預設情況下,Compute Engine 允許除埠 25 之外的所有埠上的出站連接,由於存在濫用風險,該埠已被阻止。所有其他埠都打開,包括埠 587 和 465。

注意:埠 25 始終被阻止且無法使用,即使通過使用 Google Workspace 的 SMTP 中繼也是如此。

埠 587 和 465 可用於 SMTP消息送出( RFC 6409 )。這意味著您可以使用外部郵件中繼(您自己的或來自其他人的)進行身份驗證的 SMTP,並且該伺服器在埠 25 上處理向其他郵件系統的傳遞。

引用自:https://serverfault.com/questions/1043566