我设置了一个服务器上的网防火墙后面和我想的程序在这台计算机能够使用sendmail发送电子邮件到电子邮件地址。我们有一个SMTP服务器上运行这一网络(让我们叫它mailrelay.example.com)是如何我们应该得出的电子邮件通过防火墙。

所以,我怎么sendmail配置发送的所有邮件的通过mailrelay.example.com?谷歌上搜索并没有给我答案,只有揭示,sendmail configuration是极其复杂和烦人。

有帮助吗?

解决方案

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

编辑/etc/邮件/sendmail.mc包括:

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

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

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

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

  # /etc/init.d/sendmail restart

以及设置的智能主机,你可能会想到还禁用名称分辨率的配置以及可能的转移你的sendmail非标准的港口或禁用守护模式。

禁用名称的决议

服务器是在防火墙网络或使用网络地址 翻译(NAT)可能没有DNS或国家机构服务的提供。这将创建 一个问题sendmail,因为它将使用DNS默认情况下,如果它不是 你会看到像这样的消息在mailq:

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

除非你准备建立一个适当的DNS或国家机构的服务, sendmail可以使用,在这种情况通常将配置的名字 决议是做到使用/etc/主持人的文件。这是通过使 一个'的服务。开文件和指定的决议通过的文件,具体如下:

1:使能服务。关于sendmail 编辑/etc/邮件/sendmail.mc包括:

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

2:配置服务。关于文件 创建或修改/etc/邮件/服务。切换到指仅/etc/主机名称 决议:

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

3:重新编译sendmail.mc和重新启动sendmail为此设置生效。

移sendmail非标准的港口或禁用守护模式

默认情况下,sendmail将听取关于港口25.你可能想要改变这个端口 或禁用sendmail守护模式完全用于各种原因:-如果有一个安全的政策,禁止使用众所周知的端口 -如果另一个SMTP产品/工艺是将同一主机上运行上的标准口 -如果你不想接受通过邮件smtp在所有,只是给它使用sendmail

1:移sendmail使用非标准的港口。编辑/etc/邮件/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/辑/sendmail和修改"后台"设置:

  DAEMON=no

这种改变将需要sendmail须重新启动。

其他提示

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

Sendmail智能主机

一个智能主机为主,通过这 发送邮件是中继。一些Isp 框出SMTP业务(口25) 并要求他们的用户发送出去 所有邮件的通过服务提供商的邮件 服务器。Sendmail可配置到 使用服务提供商的邮件服务器作为智能 主机。

阅读本链接文的指令对于如何设置这个了。

@Espo:感谢伟大的建议在何处开始。你的链接会更好,如果我已经配置sendmail为它第一次使用,而不是把现有结构,并使这个小小的改变。但是,一旦我知道要找的东西在"智能主机",我发现一个更简单的方法。

我所要做的就是编辑我的/etc/邮件/sendmail.cf文件改变

DS

DSmailrelay.example.com

然后重新启动sendmail和它的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top