配置SendMail作为SmartHost并重写来自地址

配置SendMail作为SmartHost并重写From-Address

本教程介绍如何配置sendmail服务器将从localhost生成的所有邮件转发到另一个SMTP服务器,以将邮件发送到远程收件人。 此外,它还解释了如何将user@localhost.localdomain的地址重写为user@example.com。

示例场景:您有一个生产服务器未配置为从外部传递邮件,但是在该服务器中运行的应用程序将其日志发送到给定的电子邮件地址,以了解其状态并导致任何服务故障。 由于sendmail在localhost.local域名上本地运行,因此尝试将具有root@localhost.localdomain的邮件转发到远程smtp服务器,由于localhost.localdomain解析为无效IP的原因,该服务器将被拒绝。 所以为了克服,我们必须将root@localhost.localdomain的地址重写到user@example.com。 以便其他smtp服务器将邮件从user@example.com中继到admin@example.com或您要发送服务状态邮件的任何地址。

注意:本教程的特定部分仅适用于基于Redhat的系统,但通常该过程适用于所有sendmail服务器。

SMARTHOST IP:10.1.1.50
SMTP HOST IP:10.1.1.10

检查已安装的RPMS:

首先应该安装Sendmail rpms。 默认情况下,Sendmail与系统安装一起安装。

检查安装的sendmail rpms:

root@nerdplanet# rpm -q sendmail sendmail-cf

这两个包应该列出安装:

sendmail-8.xx
sendmail-cf-8.xx

如果没有安装,那么安装它们。

安装Rpms

root@nerdplanet# yum install sendmail sendmail-cf

它应该将它们安装在你的linux系统中。

一旦安装,您必须确保服务器启动并在重新引导时自动启动。

root@nerdplanet# chkconfig sendmail on 
root@nerdplanet# service sendmail start

现在服务器启动并运行。

首先将远程服务器IP地址及其域名添加到/ etc / hosts

vi /etc/hosts
10.1.1.10    smtp.example.com

如果您的本地DNS可以将域名解析为配置为中继邮件的smtp服务器的IP地址,则不必执行上述步骤。

编辑Sendmail配置文件以转发邮件

vi /etc/mail/sendmail.mc

将邮件转发到smarthost

dnl # define(`SMART_HOST',`smtp.example.net') 

找到包含上述条目的行,并将其替换为smtp服务器地址。

define(`SMART_HOST',`smtp.example.com')

然后保存文件。

对于重写邮件的地址,创建genericstable文件。

vi /etc/mail/genericstable

在泛型表文件中输入以下行:

root     user@example.com
mohan    mohan@nerdplanet.co.uk

上述意思是指,如果根发送的任何邮件将被伪装,并且以user@example.com而不是root@localhost.localdomain的形式出现,并且如果用户mohan发送的任何邮件似乎来自mohan @ nerdplanet。 co.uk而不是mohan@localhost.localdomain

然后保存文件。

启用sendmail配置文件中的功能。

vi /etc/mail/sendmail.mc

添加这些行以启用功能:

FEATURE(masquerade_envelope)dnl
FEATURE(`genericstable')dnl
GENERICS_DOMAIN(`localhost.localdomain')dnl

然后运行:

make -C /etc/mail

它应该编译/ etc / mail目录下的所有文件,并更新更改。

之后重新启动sendmail服务。

root@nerdplanet# service sendmail restart

就是这样,你已经配置了sendmail作为一个smarthost。

配置SMTP服务器接受Smarthosts的邮件:

-------------------------------------------------- ----------------------

注意:此过程仅适用于远程实时smtp服务器是sendmail服务器,在此情况下为true。 对于其他SMTP服务器,请参考其文档。

推测:实时SMTP服务器已经在使用FEATURE('access_db'..

编辑实时smtp服务器中的访问文件,以接受来自智能主机的邮件。

vi /etc/mail/access
connect:10.1.1.50     RELAY
cd /etc/mail

重建Access数据库文件。

/usr/sbin/makemap hash access < access

重新启动sendmail服务。

root@smtp# service sendmail restart

而已; 远程smtp服务器将接收来自smarthost的邮件。

希望本教程对某人有用。 请留下您的意见。

原始链接 :本教程也可在http://www.nerdplanet.co.uk找到

干杯!

莫汉

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏