Email

設置僅自動轉發到另一個地址的電子郵件帳戶

  • April 19, 2020

我在 Amazon AWS 上設置了一個 EC2 實例並按照此處的教程安裝了 LAMP 堆棧:

https
://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html 我分配了一個彈性(即靜態) IP 地址指向我的實例,並指向我擁有的域名(通過我的域註冊商處理的 DNS 記錄,而不是 AWS)。當我瀏覽到我的域時,我可以看到我的 index.html 文件 - 到目前為止一切正常。

我想設置一些自動轉發到現有 Gmail 帳戶的電子郵件地址。想像一下我的域是mydomain.com- 我想要設置info@mydomain.com並且每當有人向該地址發送電子郵件時,我希望它自動轉發到(例如)mydomain@gmail.com

設置它的最簡單方法是什麼?我想知道 AWS 是否有我可以通過的教程。

感謝@Tim 連結到的另一個問題,我被指出了正確的方向並解決了這個問題。

另一個問題描述了與我遇到的相同問題。那裡的主要答案(到目前為止)建議使用 Postfix 做事。另一個答案建議使用 Sendmail。我決定嘗試 Sendmail 建議,因為它看起來非常簡單,並且預設情況下我的 EC2 實例上安裝了 Sendmail,而 Postfix 沒有。事情並不像答案似乎暗示的那麼簡單,但我通過執行以下操作使其工作:

  1. 首先,您需要確保 DNS 記錄是正確的,以便世界各地的郵件伺服器知道將發送到某個@mydomain.com地址的電子郵件定向到何處。在我的域的 DNS 記錄中,我有一個MX指向的記錄,mydomain.com.然後我有一個A指向我的 EC2 實例的彈性(即靜態)IP 地址的記錄。A那是告訴郵件伺服器將此域的電子郵件定向到記錄指示的 IP 地址mydomain.com,即定向到我的 EC2 實例。

現在需要將 Sendmail 配置為偵聽傳入的電子郵件,並根據需要轉發它。我在這裡找到了有關如何實現此目的的教程。步驟是:

  1. 系統需要知道它正在充當哪個域的郵件伺服器 - 否則 Sendmail 將不會轉發這些電子郵件。編輯/etc/mail/local-host-names並添加相應的域名:
# local-host-names - include all aliases for your machine here.
mydomain.com
myotherdomain.com
  1. 編輯/etc/mail/access以告訴 Sendmail 為您的域中繼郵件。這個文件是為了安全。添加:
mydomain.com RELAY
  1. 預設情況下,Sendmail 不會在外部偵聽傳入的郵件。有/etc/mail/sendmail.mc一行告訴 Sendmail 只監聽 IPv4 環回地址 127.0.0.1 而不是任何其他網路設備。取消環回地址限制以接受來自 Internet 的電子郵件。

改變

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
  1. 現在我們需要設置“虛擬使用者”,即要自動轉發的電子郵件地址。以下行應位於sendmail.mc; 如果它不存在,請添加它:
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl

這告訴 Sendmail 在(編譯版本的)文件virtusertable中查找要自動轉發的地址,以及它們應該轉發到的位置。在virtusertable文件中,添加以下內容:

info@mydomain.com mydomain@gmail.com

我相信您還需要在 中添加一行,以告訴 Sendmail適用於sendmail.mc哪個域。virtusertable所以,還要添加這一行:

VIRTUSER_DOMAIN_FILE(`/etc/mail/virtual-domains')dnl

在 中virtual-domains,添加以下內容:

mydomain.com
  1. Sendmail 不會直接讀取所有這些配置文件——它們需要被編譯。make/etc/mail目錄中執行。您需要sendmail-cf安裝該軟體包才能使其正常工作。
  2. 重新啟動發送郵件:sudo service sendmail restart

在這一點上,我認為一切都應該工作……但它沒有。我忽略了它幾天,考慮到我可能會再次嘗試使用 Postfix,然後我才想起一些事情……AWS 應用安全規則來阻止/允許某些網路流量。郵件伺服器通過 SMTP 偵聽新郵件,但我沒有設置規則以允許埠 25 上的傳入流量。因此,在 AWS 管理控制台中,確保您在應用於 EC2 實例的安全組中打開入站 TCP 埠 25 . 一旦我這樣做了,一切都立即開始按預期工作。發送到info@mydomain.com的電子郵件現在正在發送(通過我的 EC2 實例上的 Sendmail)到mydomain@gmail.com.

最簡單的方法是根本不讓您的伺服器參與郵件。這是一項低價值服務,在垃圾郵件和投遞方面具有復雜性,採用 SPF、DKIM 和其他相關技術。

我建議您使用託管電子郵件提供商 - 有很多,包括 Google for Business、Office 365、Fastmail 等。將您的 DNS MX 記錄指向該提供商,對其進行配置,然後使用 IMAP/網路郵件來檢查電子郵件。如果您願意,這些平台還允許您配置郵件轉發。

更新:我搜尋了“免費電子郵件轉發”,發現ImprovMXForwardMX(不是免費的)。我對他們一無所知,但他們會做你想做的事——設置你的 MX 記錄並將其轉發到你的電子郵件。請注意,兩者都可以閱讀您的電子郵件。ImprovMX 沒有隱私政策。ForwardMX 有隱私政策,並且收取相對較少的轉發費用。

免費解決方案:如果您想從您的伺服器設置郵件轉發,這只會花費您的頻寬,您可以使用Server Fault 的這個答案。看起來很容易。

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