配置 sendmail 仅使用一个出站 MTA

配置 sendmail 仅使用一个出站 MTA

我遇到了 sendmail 问题,但我并不是 sendmail 专家 —— 我需要一些帮助。

我的问题是,我的系统或多或少是“设备”——它不打算有管理员。因此,它需要能够通过发送电子邮件“打电话回家”。正如我们配置的那样,它工作正常——使用 sendmail,它通过查找 MX 记录找到适当的中继,一切正常。

然而,现在出于安全考虑,我们希望将其限制为使用恰好一个中继,例如relay.corp.example.com。如果用户将其配置为使用,则fubar.example.com邮件发送将失败或被推迟。

我认为通过配置 sendmail 包含一个/etc/mail/server.switch文件

hosts   files

如果没有dns,我就会得到那种效果。这不起作用——相反,如果它收到发往 的邮件[email protected],它会尝试直接与 对话example.com,并忽略配置的服务器。

有任何想法吗?

更新

好的,我通过实验结合了这两种方案,它们似乎都有效。希望我能把它们都标记为正确。

答案1

你使用 m4 来构建你的吗sendmail.cf?如果是的话,你应该添加

define(`SMART_HOST',`relay.corp.example.com')

到你的sendmail.mc并重新生成你的sendmail.cf。看起来就像添加

DSrelay.corp.example.com

正确的sendmail.cf做法也可以达到同样的效果。

答案2

这是 SuSE 系统的 M4 文件,用于将所有电子邮件转发到中继主机。
(SuSE 发行版中也包含该文件)。您只需执行 m4 x.mc >x.cf,其中 x.mc 是下面的文件,x.cf 是用于替换 sendmail.cf 文件的文件(通常在 /etc/sendmail.cf 或 /etc/mail/sendmail.cf 中)。

 divert(-1)
 #
 # Copyright (c) 1999 SuSE GmbH Nuernberg, Germany.
 # Copyright (c) 2006 SuSE LINUX Products GmbH, Germany.
 # Author: Werner Fink
 # Please send feedback to http://www.suse.de/feedback/
 #
 # This is a special case -- it creates a stripped down configuration
 # file containing nothing but support for forwarding all mail to a
 # central hub via a local SMTP-based network.  The argument is the
 # name of that hub.
 #

 include(`/usr/share/sendmail/m4/cf.m4')
 divert(0)dnl
 VERSIONID(`@(#)Setup for SuSE Linux     0.2 (SuSE Linux) 2002/01/14')
 dnl
 dnl  This is the default configuration for SuSE Linux.
 dnl  See /usr/share/sendmail/ostype/suse-linux.m4
 dnl  and /usr/share/sendmail/README for more information.
 dnl
 OSTYPE(`suse-linux')dnl
 dnl
 dnl  A stripped down configuration. Replace the mailhub.domain.notused
 dnl  with your real mailhub.
 dnl
 FEATURE(`nocanonify')dnl
 FEATURE(`nullclient', `relay.corp.example.com')dnl
 dnl
 dnl  This line is required for formating the /etc/sendmail.cf
 dnl
 LOCAL_CONFIG

相关内容