設置僅自動轉發到另一個地址的電子郵件帳戶
我在 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 沒有。事情並不像答案似乎暗示的那麼簡單,但我通過執行以下操作使其工作:
- 首先,您需要確保 DNS 記錄是正確的,以便世界各地的郵件伺服器知道將發送到某個
@mydomain.com
地址的電子郵件定向到何處。在我的域的 DNS 記錄中,我有一個MX
指向的記錄,mydomain.com.
然後我有一個A
指向我的 EC2 實例的彈性(即靜態)IP 地址的記錄。A
那是告訴郵件伺服器將此域的電子郵件定向到記錄指示的 IP 地址mydomain.com
,即定向到我的 EC2 實例。現在需要將 Sendmail 配置為偵聽傳入的電子郵件,並根據需要轉發它。我在這裡找到了有關如何實現此目的的教程。步驟是:
- 系統需要知道它正在充當哪個域的郵件伺服器 - 否則 Sendmail 將不會轉發這些電子郵件。編輯
/etc/mail/local-host-names
並添加相應的域名:# local-host-names - include all aliases for your machine here. mydomain.com myotherdomain.com
- 編輯
/etc/mail/access
以告訴 Sendmail 為您的域中繼郵件。這個文件是為了安全。添加:mydomain.com RELAY
- 預設情況下,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
- 現在我們需要設置“虛擬使用者”,即要自動轉發的電子郵件地址。以下行應位於
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
- Sendmail 不會直接讀取所有這些配置文件——它們需要被編譯。
make
在/etc/mail
目錄中執行。您需要sendmail-cf
安裝該軟體包才能使其正常工作。- 重新啟動發送郵件:
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/網路郵件來檢查電子郵件。如果您願意,這些平台還允許您配置郵件轉發。
更新:我搜尋了“免費電子郵件轉發”,發現ImprovMX和ForwardMX(不是免費的)。我對他們一無所知,但他們會做你想做的事——設置你的 MX 記錄並將其轉發到你的電子郵件。請注意,兩者都可以閱讀您的電子郵件。ImprovMX 沒有隱私政策。ForwardMX 有隱私政策,並且收取相對較少的轉發費用。
免費解決方案:如果您想從您的伺服器設置郵件轉發,這只會花費您的頻寬,您可以使用Server Fault 的這個答案。看起來很容易。