linux – 如何使sendmail中继本地邮件?

前端之家收集整理的这篇文章主要介绍了linux – 如何使sendmail中继本地邮件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有www服务器叫mywebsite.com和邮件serwer mymail.com. 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

问题是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?

解决方法

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

如果您在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服务.

这里的所有都是它的.一旦您采取这几个简单的步骤,您就可以获得发送给您域中未知用户的任何电子邮件的全部内容.

猜你在找的Linux相关文章