如何告诉sendmail使用localhost端口2525作为智能中继?

时间:2013-06-16 06:57:40

标签: sendmail

我在限制性很强的网络上安装了远程系统。不幸的是,我还没有办法让他们运行电子邮件中继,或允许系统连接发送邮件。

没有办法连接,而是系统使用SSH连接(通过HTTPS代理发生)并使用-R标志将我们系统上的端口转发回远程系统,以便我们登录。

我不知道让sendmail使用https代理进行出站连接的方法。相反,我使用-L将localhost:2525转发到我们的邮件服务器,但我无法弄清楚如何让sendmail使用它作为它的智能中继。

我的mc文件中有以下内容

define(`SMART_HOST', `[10.10.22.4]')
define(`RELAY_MAILER_ARGS', `TCP $h 2525')

10.10.22.4是系统的IP地址,我也尝试过127.0.0.1,结果相同..

maillog看起来像..

Jun 16 06:50:36 remotehost sm-mta[49702]: starting daemon (8.12.9p2): SMTP+queueing@00:30:00
Jun 16 06:50:36 remotehost sm-msp-queue[49703]: starting daemon (8.12.9p2): queueing@00:30:00
Jun 16 06:51:52 remotehost sendmail[50072]: r5G6poHi050072: from=user, size=46, class=0, nrcpts=1, msgid=<201306160651.r5G6poHi050072@remotehost>, relay=user@localhost
Jun 16 06:51:54 remotehost sm-mta[50129]: r5G6pqM2050129: from=<user@remotehost>, size=373, class=0, nrcpts=1, msgid=<201306160651.r5G6poHi050072@remotehost>, proto=ESMTP, daemon=Daemon0, relay=localhost [127.0.0.1]
Jun 16 06:51:54 igarashi1 sendmail[50072]: r5G6poHi050072: to=user@outside.host, ctladdr=user (19999/19999), delay=00:00:04, xdelay=00:00:02, mailer=relay, pri=30041, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (r5G6pqM2050129 Message accepted for delivery)
Jun 16 06:52:05 remotehost sm-mta[50137]: r5G6pqM2050129: to=<user@outside.host>, ctladdr=<user@remotehost> (19999/19999), delay=00:00:11, xdelay=00:00:11, mailer=esmtp, pri=30368, relay=mail.outside.host. [203.31.81.10], dsn=4.0.0, stat=Deferred: Connection reset by mail.outside.host.

即它似乎忽略了智能继电器部分。是的,我已经检查过cf文件正在改变:)我还完全重启了sendmail(不只是发送了一个HUP)。

1 个答案:

答案 0 :(得分:0)

建议修复:
在智能主机定义中指定邮件程序:

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

<强>解释
我假设[10.10.22.4]是本地IP接口的IP地址。它使它列在sendmail的本地电子邮件域列表($=w)中。 Sendmail将“无邮件”中继忽略为$=w中列出的名称/地址。 (Sendmail在MailerToTriple规则集中执行此操作)。