一般语法转换为 m4 /etc/mail/sendmailmc > /etc/sendmail.cf
1。配置Sendmail作为邮件转发网关。
目的:做为内网,外网之间的Email集中,发散服务器。
可以把所有内网的Email通过一台Email发送到可以访问外网的服务器
配置.
1.1 直接修改sendmail.cf DS属性.
在Sendmail.cf里找到smart relay host DS 在后面加入需要转发到的中心Email网关
服务器的domain name
如 DSsmtp.microsft.com
1.2 修改sendmail.mc
加入:define(`SMART_HOST',`smtp.microsft.com')
然后用命令m4 编译成sendmail.cf.启动sendmail 就可以使用了。
上面的方法有个缺点,就是 网关服务器必须要有正规的域民,如果没有在发送email的时候,跟踪email
sendmail -v gate@microsft.com 会出现 (Reason 550 Host Unknown)的错误。
如何避免这个问题呢?这个问题就直接引出下面问题。
Sendmail发送Email的时候,如何避免查询DNS?
2. 配置Sendmail 发送Email不要查询DNS.
在sendmail.mc 文件里加入如下语句:
FEATURE(`nodns')dnl
然后通过 m4生成 sendmail.cf文件,并在提示下,建立/etc/mail/service.switch文件
文件内容包括如下:
hosts files
aliases files
注释:
hosts files 让sendmail的dns查询只查询/etc/hosts文件。
你可以在hosts文件里加入 ip 服务器名.
aliases files 让sendmail 查询/etc/mail/aliases
启动 sendmail /etc/init.d/sendmail restart 之后。
再用 sendmail -v xxx@microsft.com
就可以看到发送成功的消息了。如下
220 yourseve.name ESMTP Service ready at Fri, 13 Oct 2006 13:21:34 +0800
>>> EHLO localhost.localdomain
250-Email.Gateway Hello localhost.localdomain ([10.2.5.240]), pleased to meet you
250-HELP
250-SIZE 10240000
250 PIPELINING
>>> MAIL From:
250 root@localhost.localdomain... Sender OK
>>> RCPT To:
250 gate@microsft.com... Recipient OK
>>> DATA
354 Enter message, end with "." on a line by itself
>>> .
250 Message accepted for delivery
gate@microsft.com... Sent (Message accepted for delivery)
Closing connection to Email.gatway
>>> QUIT