在防火墙后配置sendmail

时间:2008-09-04 15:10:14

标签: configuration firewall sendmail smarthost

我正在设置一个位于防火墙后面的网络上的服务器,我希望这台计算机上的程序能够使用sendmail将电子邮件发送到任何电子邮件地址。我们在这个网络上运行一个SMTP服务器(我们称之为mailrelay.example.com),这就是我们应该通过防火墙接收外发电子邮件的方式。

那么如何配置sendmail通过mailrelay.example.com发送所有邮件?谷歌搜索还没有给我答案,并且只透露sendmail配置非常复杂和烦人。

3 个答案:

答案 0 :(得分:13)

@eli:通常不建议直接修改sendmail.cf,因为它是由宏编译器生成的。

编辑/etc/mail/sendmail.mc以包含以下行:

  define(`SMART_HOST',`mailrelay.example.com')dnl 

更改sendmail.mc宏配置文件后,必须重新编译它 生成sendmail配置文件。

  # m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

然后重启sendmail服务(Linux):

  # /etc/init.d/sendmail restart

除了设置smarthost之外,您可能还想禁用名称解析配置,并可能将sendmail转移到非标准端口,或禁用守护程序模式。

禁用名称解析

防火墙网络内或使用网络地址的服务器 翻译(NAT)可能没有DNS或NIS服务可用。这创造了 sendmail的问题,因为它默认使用DNS,如果不是 您可以在mailq中看到这样的消息:

  host map: lookup (mydomain.com): deferred)

除非您准备设置适当的DNS或NIS服务 sendmail可以使用,在这种情况下,您通常会配置名称 使用/ etc / hosts文件完成的分辨率。这是通过启用来完成的 'service.switch'文件并按文件指定分辨率,如下所示:

1:为sendmail启用service.switch 编辑/etc/mail/sendmail.mc以包含以下行:

  define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

2:为文件配置service.switch 创建或修改/etc/mail/service.switch以仅引用/ etc / hosts作为名称 分辨率:

  # cat /etc/mail/service.switch
  hosts files

3:重新编译sendmail.mc并重启sendmail以使此设置生效。

将sendmail移至非标准端口,或禁用守护程序模式

默认情况下,sendmail将侦听端口25.您可能想要更改此端口 或者出于各种原因完全禁用sendmail守护程序模式: - 如果存在禁止使用知名端口的安全策略 - 如果要在标准端口上的同一主机上运行另一个SMTP产品/进程 - 如果您根本不想通过smtp接收邮件,只需使用sendmail发送邮件

1:将sendmail转移到使用非标准端口。 编辑/etc/mail/sendmail.mc并修改行中的“端口”设置:

  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

例如,要使sendmail使用端口125:

  DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')

这将需要重新编译sendmail.mc并重新启动sendmail。

2:或者,完全禁用sendmail守护进程模式(Linux) 编辑/ etc / sysconfig / sendmail并将“DAEMON”设置修改为:

  DAEMON=no

此更改将要求重新启动sendmail。

答案 1 :(得分:5)

http://www.elandsys.com/resources/sendmail/smarthost.html

  

Sendmail Smarthost

     

智能主机是一个主机   外发邮件被转发。一些ISP   阻止传出SMTP流量(端口25)   并要求他们的用户发送出去   所有邮件都通过ISP的邮件   服务器。可以将Sendmail配置为   使用ISP的邮件服务器作为智能   主机。

阅读链接文章,了解如何进行设置。

答案 2 :(得分:3)

@Espo:感谢您从何处着手。如果我第一次使用sendmail而不是采用现有配置并进行这一小改动,那么你的链接会更好。然而,一旦我知道在“SmartHost”上寻找东西,我就找到了一种更简单的方法。

我所要做的就是编辑我的/etc/mail/sendmail.cf文件以进行更改

DS

DSmailrelay.example.com

然后重新启动sendmail,它就可以了。