Sendmail:邮件仍在转发至 root@localhost

Sendmail:邮件仍在转发至 root@localhost

我正在运行 CENTOS 6.2,有 2 个虚拟机,一个是'身份验证'(192.168.0.2)和另一个代理(192.168.0.3)。代理主机没有互联网连接。我的目的是代理主机将其邮件发送到身份验证主机,然后身份验证主机从那里发送邮件。

我已经在 sendmail.mc 中配置了智能主机配置代理人像这样 :

define(`SMART_HOST', '192.168.0.2')

我也设置了一个中继授權在访问下:

CONNECT:192.168.0.3 RELAY

但是,当我仍尝试使用以下方法从代理发送邮件时:

mail [email protected]

邮件未发送出去,日志显示如下:

Jan 15 01:03:48 test1 sendmail[14388]: s0F8xmdl014388: from=proxy, size=244, class=0, nrcpts=1, msgid=<201401150859.s0F8xmdl014388@test1>, relay=root@localhost
Jan 15 01:03:48 test1 sendmail[14388]: s0F8xmdl014388: [email protected], delay=00:04:00, mailer=esmtp, pri=30244, dsn=4.4.3, stat=queued

它仍通过 root@localhost 进行中继。

我尝试过使用按照 EreBusBat 的解释进行修复我仍然遇到同样的问题。

答案1

在智能主机定义中包含邮件程序规范,并将 IP 地址放在方括号内。

define(`SMART_HOST', `relay:[192.168.0.2]')

答案2

我尝试过,但还是没有用。

然而,我又仔细研究了一下,找到了一个解决方案。事情的原因是,尽管没有互联网,但“proxy”的 sendmail 仍不断检查我的 DNS 服务器,以解析“auth”的位置。因此,当它失败时,它就回到了root@localhost中继代理的状态。

我需要强制代理的 sendmail 查找我的/etc/hosts文件。为此,我做了以下操作:

/etc/mail/submit.mc文件中:

divert(0)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for RHEL')dnl
define(`confCF_VERSION', `Submit')dnl
define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining
define(`confTIME_ZONE', `USE_TZ')dnl
define(`confDONT_INIT_GROUPS', `True')dnl
define(`confPID_FILE', `/var/run/sm-client.pid')dnl
define(`SMART_HOST',`my smarthost from /etc/hosts')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
MASQUERADE_AS(`Your DNS domain: example.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
FEATURE(`use_ct_file')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

另外,在/etc/mailserver.switch 文件中创建:

主机文件别名文件

致谢:http://www.tenox.net/docs/force2smarthost.html寻求解决方案。

相关内容