在防火墙后配置sendmail
我正在设置一台服务器,该服务器位于防火墙后面的网络中,我希望这台计算机上的程序能够使用sendmail将电子邮件发送到任何电子邮件地址。我们在此网络上运行着一个SMTP服务器(我们将其称为mailrelay.example.com),这就是我们应该如何通过防火墙接收传出电子邮件的方式。
那么,如何配置sendmail通过mailrelay.example.com发送所有邮件?谷歌搜索还没有给我答案,只是透露了sendmail的配置非常复杂和烦人。
解决方案
回答
http://www.elandsys.com/resources/sendmail/smarthost.html
Sendmail Smarthost A smarthost is a host through which outgoing mail is relayed. Some ISPs block outgoing SMTP traffic (port 25) and require their users to send out all mail through the ISP's mail server. Sendmail can be configured to use the ISP's mail server as the smart host.
阅读链接的文章以获取有关如何进行此设置的说明。
回答
@Espo:感谢我们提供从何入手的好建议。如果我是第一次配置sendmail而不是进行现有配置并进行此小更改,则链接会更好。但是,一旦知道要在" SmartHost"上查找内容,我便找到了一种更简单的方法。
我要做的就是编辑我的/etc/mail/sendmail.cf文件进行更改
DS
到
DSmailrelay.example.com
然后重新启动sendmail,它起作用了。
回答
@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
除了设置智能主机之外,我们可能还希望禁用名称解析配置,并可能将sendmail转移到非标准端口,或者禁用守护程序模式。
防火墙网络内或者使用网络地址的服务器
转换(NAT)可能没有DNS或者NIS服务。这创造了
sendmail的问题,因为它将默认使用DNS,如果不是,则使用DNS
可用时,我们将在mailq中看到以下消息:
host map: lookup (mydomain.com): deferred)
除非我们准备设置适当的DNS或者NIS服务,否则
sendmail可以使用,在这种情况下,我们通常会配置名称
使用/ etc / hosts文件完成解析。这是通过启用
一个" service.switch"文件,并按文件指定分辨率,如下所示:
1:启用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将在端口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。