首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在防火墙后配置sendmail

问在防火墙后配置sendmail
EN

Stack Overflow用户
提问于 2008-09-04 15:10:14
回答 3查看 22.2K关注 0票数 8

我正在设置一个服务器,它位于防火墙后面的网络上,我希望这台计算机上的程序能够使用sendmail向任何电子邮件地址发送电子邮件。我们有一个运行在这个网络上的SMTP服务器(让我们称它为mailrelay.example.com),这就是我们应该如何通过防火墙获取传出的电子邮件。

那么,如何配置sendmail以通过mailrelay.example.com发送所有邮件呢?Googling还没有给我答案,只告诉我sendmail的配置是非常复杂和恼人的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-20 10:05:41

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

编辑/etc/mail/sendmail.mc以包括该行:

代码语言:javascript
复制
  define(`SMART_HOST',`mailrelay.example.com')dnl 

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

代码语言:javascript
复制
  # m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

并重新启动sendmail服务(Linux):

代码语言:javascript
复制
  # /etc/init.d/sendmail restart

除了设置智能主机之外,您可能还希望禁用名称解析配置,并可能将sendmail切换到非标准端口,或者禁用守护程序模式。

禁用名称解析

位于防火墙网络中或使用网络地址转换(NAT)的服务器可能没有可用的DNS或NIS服务。这给sendmail带来了一个问题,因为它将默认使用DNS,如果它不可用,您将在mailq中看到这样的消息:

代码语言:javascript
复制
  host map: lookup (mydomain.com): deferred)

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

1:为sendmail Edit /etc/ service.switch /sendmail.mc启用邮件,以包括以下行:

代码语言:javascript
复制
  define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

2:为文件配置邮件。创建或修改/etc/ service.switch /service.switch。切换为仅引用/etc/service.switch进行名称解析:

代码语言:javascript
复制
  # cat /etc/mail/service.switch
  hosts files

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

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

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

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

代码语言:javascript
复制
  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

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

代码语言:javascript
复制
  DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')

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

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

代码语言:javascript
复制
  DAEMON=no

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

票数 14
EN

Stack Overflow用户

发布于 2008-09-04 15:11:39

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

发送邮件智能主机

smarthost是中继外发邮件的主机。一些ISP阻止传出SMTP流量(端口25),并要求其用户通过ISP的邮件服务器发送所有邮件。Sendmail可以配置为使用ISP的邮件服务器作为智能主机。

请阅读链接文章,了解如何设置此功能。

票数 5
EN

Stack Overflow用户

发布于 2008-09-04 15:30:32

@Espo:感谢你关于从哪里开始的伟大建议。如果我将sendmail配置为第一次使用,而不是采用现有配置并进行此小更改,您的链接会更好。然而,当我知道如何在"SmartHost“上查找内容时,我发现了一种更简单的方法。

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

代码语言:javascript
复制
DS

至

代码语言:javascript
复制
DSmailrelay.example.com

然后重启sendmail,它就起作用了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档