如何使sendmail 中继本地邮件?

B14*_*4D3 5 linux sendmail user-accounts

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

因此,我在 mywebsite.com 上配置了 sendmail 以通过 mymail.com 中继所有邮件。我在 mywebsite.com 上更改了 sendmail 配置: dnl # define('SMART_HOST', 'mymail.com')dnl

问题是当我发送到例如 rafal@mywebsite.com 时,sendmail 会抱怨该用户未知(但该邮箱存在于 mymail.com 上)。所有 maiblox 都在 mymail.com 上,而不是在 mywebsite.com 上。

这是从 telnet 登录到 mywebsite.com 上的 localhost

root@mywebsite.com# 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: me@mywebsite.com
250 2.1.0 me@mywebsite.com... Sender ok
rcpt to: rafal@mywebsite.com
550 5.1.1 rafal@website.com ... User unknown
data
503 5.0.0 Need RCPT (recipient)
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用检查本地域的rcpt?

mai*_*ilq 4

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


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

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

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

    FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dn
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编辑该/etc/mail/virtusertable文件并添加如下所示的行,每行对应您要为其添加包罗万象的服务器上的每个域:

    @domain1.com postmaster-domain1
    @domain2.com postmaster-domain2
    
    Run Code Online (Sandbox Code Playgroud)

    在此示例中,发送到domain1.com 的未知用户的任何邮件都将转发到postmaster-domain1 用户,发送到domain2.com 的未知用户的任何电子邮件都将转发到postmaster-domain2 用户。为此,要向其转发邮件的用户必须存在并且能够接收邮件。

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

这里的所有都是它的。一旦您执行了这几个简单的步骤,您就可以捕获发送给域中未知用户的所有电子邮件。