是否可以透過 NGINX 反向代理遠端(由另一家公司管理,例如 Google Apps 或 Office 365)SMTP/IMAP 伺服器?例子:
我託管example.com
並用於mailhost.com
託管我的郵件。我嘗試添加 2 個 CNAME 記錄來example.com
完成此操作,但沒有成功。 [ smtp.example.com
->smtp.mailhost.com
等]
最好,我想要一個子網域 ( mail.example.com
),同時指向smtp.mailhost.com
和imap.mailhost.com
,並使用連接埠區分這兩個網域。 [ mail.example.com:993
-> imap.mailhost.com:993
, smtp.example.com:587
-> smtp.mailhost.com:587
]
這可能嗎?我想要這樣做的唯一原因是為了讓我的網站使用者更容易設定郵件用戶端,並在詢問為什麼我要求他們連接到看似隨機的網域來獲取電子郵件時避免混淆。我知道這可能會導致 DKIM 等出現一些問題。
這項任務是簡單、麻煩還是不可能?我能夠設定郵件伺服器,但寧願使用現成的解決方案。
答案1
在我看來,NGINX 郵件代理伺服器指南缺少一項非常重要的訊息,而這些資訊是我獲得類似功能所必需的:
在 Apache 伺服器上使用 PHP 腳本作為 IMAP 驗證後端
我花了幾週的時間才找到一個可行的解決方案,因為嘲笑身分驗證服務對我來說無法正常運作。停用所有 SSL 功能並新增 auth php 腳本後,我終於能夠透過 NGINX 代理程式使用 IMAP 接收電子郵件。
SMTP 仍然存在的一個問題是:NGINX 不會將 auth 命令轉送到伺服器:https://forum.nginx.org/read.php?2,58181,58186#msg-58186。
因此,要使用 NGINX 郵件代理,必須停用 SMTP 驗證。如果有人找到解決方法,請在此處發布解決方案:https://stackoverflow.com/questions/56031592/nginx-forwarding-smtp-auth-credentials-to-next-server/56583571#56583571
以下是我要分享的主題的一些相關連結:
答案2
這在將 NGINX 配置為郵件代理伺服器官方文件中的指南。
但您應該注意,除非您能夠使任何 SPF、SSL 和 DKIM 配置與上游配置相匹配,否則您可能會遇到郵件送達問題。