我如何(简单地)将所有传入电子邮件转发到外部地址(即Gmail)?

随着Google Apps不再适用于小型企业/团队,我将MXlogging指向我的应用程序服务器。 我仍然希望通过发送到与上述MXlogging关联的域的Gmail地址接收电子邮件。

我已经看过安装sendmail和configuration/etc/mail/virtusertable来包含类似的东西

 @mydomain [email protected] 

我也看过安装postfix和修改/etc/aliases

 admin: [email protected] team: [email protected] ... 

无论如何,当我发送邮件到[email protected] ,邮件似乎永远不会到达我的应用程序服务器(例如, /var/log/maillog显示没有添加任何内容),并且绝对不会将其重新发送到我的Gmail帐户。

我罚款废除postfix和/或sendmail的另一种select; 我只是想接受我的应用程序服务器上的电子邮件,它只是将所述电子邮件转发到Gmail帐户。 我不需要/需要服务器上的任何真正的电子邮件帐户,这是服务器上唯一的域名。

使用sendmail,你需要在/etc/mail/sendmail.mc末尾添加这样的内容:

 LOCAL_CONFIG Kuser user -m -a.FOUND LOCAL_RULE_0 R$- < @ $=w . > $* $: $(user $1 $) < @ $2 . > $3 R$- . FOUND < @ $=w . > $* $@ username < @ gmail.com. > $3 

这将转发任何​​电子邮件到系统的用户(列在/etc/passwd )到您的[email protected]。 请记住,规则的左侧与规则的右侧分开,而不是空格。 所以不要复制粘贴,而是input上面的规则。 之后,您需要运行/etc/mail/make来构buildsendmail.cfservice sendmail restart ,以便进行更改。

对于初学者来说,你需要在你的服务器上安装postfix或sendmail,这是一个非常痛苦的事情。 一旦你启动并运行,在Postfix中继邮件是一个简单的过程。

http://www.howtoforge.com/how-to-relay-email-on-a-postfix-server

我实际上正在运行一个后期/ dovecot服务器,正在做你所需要的。

如果在你的postfix日志中没有任何东西出现,它看起来像你的服务器没有得到传入的连接,因为它不觉得你想发送邮件的域负责。

虚拟用户和域表是一个好的开始,但要确保postfix感觉负责添加域到“mydestination”像这样:

 mydestination = localhost, mydomain.tld, mail.mydomain.tld 

不要忘记先哈希它:

 postmap /etc/postfix/virtusertable 

在别名映射中包含您的virtusertable:

 virtual_alias_maps = hash:/etc/postfix/virtusertable 

最后但并非最不重要的,检查后缀实际上是获取请求

 dig mydomain.tld MX 

和你的域名,并检查MXlogging,他们指向后缀服务器。 如果您今天刚刚更改了/ MX DNS条目,则可能最多需要24小时才能使更改显示,因为您的DNS的DNScaching,您的提供商DNS或发送邮件到mydomain.tld的服务器的其他DNS服务器

使用sendmail,你可以在/etc/mail/sendmail.mc中添加这样的内容:

 define(`LUSER_RELAY',`error:550 User unknown') define(`MAIL_HUB',`esmtp:[email protected]') 

它应该在(LUSER_RELAY)之后拒绝未知本地用户的邮件,并将邮件发送到剩余的本地电子邮件地址到[email protected](MAIL_HUB)。 它是在别名扩展和〜/ .forward文件处理之后应用的。

警告:

  • 该方法不能处理由目标邮件引起的拒绝,例如由反垃圾邮件程序引起的拒绝。
  • 不要使用FEATURE(stickyhost)
  • 我把它主要作为替代定制R线基础的解决scheme。