如何使sendmail转发本地邮件?

我有www服务器称为说mywebsite.com和邮件服务器mymail.com。 mywebsite.com的邮件由mymail.com处理(mxloggingmywebsite.com是mymail.com)。 问题是我想从我的www服务器mywebsite.com发送邮件到域名mywebsite.com的地址。

所以我在mywebsite.com上configuration了sendmail通过mymail.com来转发所有的邮件。 我更改mywebsite.com上的sendmailconfiguration: dnl # define('SMART_HOST', 'mymail.com')dnl

问题是,当我发送到例如[email protected]用户是未知的(但该邮箱存在mymail.com)发送邮件抱怨。 所有maibloxes都在mymail.com不在mywebsite.com上。

这是在mywebsite.com上从telnet到本地主机的日志

 [email protected]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 familie.pl ESMTP Sendmail 8.13.8/8.13.8; Sun, 6 Nov 2011 18:21:04 +0100 helo domain.pl 250 domain.pl Hello localhost.localdomain [127.0.0.1], pleased to meet you mail from: [email protected] 250 2.1.0 [email protected]... Sender ok rcpt to: [email protected] 550 5.1.1 [email protected] ... User unknown data 503 5.0.0 Need RCPT (recipient) 

有没有办法来禁止检查rcpt本地域?

这是引自http://www.tipstrs.com/tip/13296/Setting-up-sendmail-with-a-catch-all-for-unknown-email-addresses


如果您正在Linux服务器上运行sendmail,则configurationsendmail非常容易,因此发送到您域中未知电子邮件地址的任何电子邮件都将转发到已知地址。 这样做会导致更多的垃圾邮件,但我喜欢这个原因,我可以使用不存在的电子邮件地址用于特定目的(例如,当论坛需要有效的电子邮件地址作为注册确认过程的一部分时) 。

以下是如何设置Fedora中所有未知电子邮件地址的全部内容(您的disto可能稍有不同),所有这些命令都需要在root用户下运行:

  1. 编辑/etc/mail/sendmail.mc文件并查找包含virtusertable的行,并确保它没有被注释掉。 如果它被注释掉,删除评论。 就我而言,它看起来像这样:

     FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dn 
  2. 编辑/etc/mail/virtusertable文件并添加如下所示的行,为服务器上的每个域添加一行,以便为其添加一个catch-all:

     @domain1.com postmaster-domain1 @domain2.com postmaster-domain2 

    在这个例子中,发送给domain1.com上的一个未知用户的邮件将被转发给postmaster-domain1用户,并且发送给在domain2.com上的未知用户的任何邮件都将被转发给postmaster-domain2用户。 为此,邮件转发的用户必须存在,并能够接收邮件。

  3. /etc/mail目录运行make命令。
  4. 使用service sendmail restart命令重新启动sendmail服务。

这里的所有都是它的。 一旦你采取这几个简单的步骤,你将有一个全面的发送给你的域名不明的用户的任何电子邮件。