所以我在mywebsite.com上配置了sendmail,通过mymail.com传递所有邮件.
我在mywebsite.com上更改了sendmail配置:
dnl #define(‘SMART_HOST’,’mymail.com’)dnl
问题是sendmail在发送到例如rafal@mywebsite.com时抱怨用户未知(但该邮箱存在于mymail.com上).所有maiblox都在mymail.com上,不在mywebsite.com上.
这是在mywebsite.com上从telnet登录到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)
有没有办法禁用检查本地域的rcpt?
解决方法
如果您在Linux服务器上运行sendmail,则可以非常轻松地配置sendmail,以便将发送到您域中未知电子邮件地址的任何电子邮件转发到已知地址.这样做会导致更多的垃圾邮件,但我喜欢这个因为我可以使用不存在的电子邮件地址用于特定目的(例如当论坛需要有效的电子邮件地址作为注册确认过程的一部分时) .
以下是如何为Fedora中的所有未知电子邮件地址设置一个全能(您的disto可能略有不同),所有这些命令都需要在root用户下运行:
>编辑/etc/mail/sendmail.mc文件并查找包含virtusertable的行,并确保它没有被注释掉.如果已注释掉,请删除注释.就我而言,它看起来像这样:
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dn
>编辑/ etc / mail / virtusertable文件并添加如下所示的行,一个用于服务器上要为其添加catch-all的每个域:
@domain1.com postmaster-domain1 @domain2.com postmaster-domain2
在此示例中,发送到domain1.com上的未知用户的任何邮件都将转发给postmaster-domain1用户,发送给domain2.com上的未知用户的任何邮件都将转发给postmaster-domain2用户.为此,转发邮件的用户必须存在,并且能够接收邮件.
>从/ etc / mail目录中,运行make命令.
>使用service sendmail restart命令重新启动sendmail服务.