exim4 中继电子邮件

exim4 中继电子邮件

我在一台 Linux 机器上安装了 exim4。基本功能运行良好,我可以从这台机器毫无问题地向任何电子邮件地址发送电子邮件。

我还有一台打印机/扫描仪,能够将扫描件作为电子邮件发送。它需要一个 SMTP 网关才能做到这一点。所以我给了那个 Linux 机器的 IP 地址,稍微改变了配置,但仍然无法让它工作。

运行之后dpkg-reconfigure exim4-config,我得到的结果如下/etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1;192.168.2.2'
dc_readhost=''
dc_relay_domains='mycompanyemail.com'
dc_minimaldns='false'
dc_relay_nets='192.168.2.0/24'
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

我的问题是,使用此配置,我只能发送电子邮件至@mycompanyemail.com...它说我可以使用通配符,但是当我这样做时,“*”将被我在运行所有这些的目录中的文件名替换。

我该如何配置它才能使用任何域名发送电子邮件?还是我做错了?

编辑:这是造成问题的日志部分:

2011-08-03 16:28:18 H=(NPI2D389C) [192.168.2.20] F=<[email protected]> rejected RCPT <[email protected]>: relay not permitted

第一部分 ([电子邮件保护]) 没关系。我更改了电子邮件地址。关键是,如果此电子邮件是 @mycompanyemail.com,则一切正常。其他任何方式都行不通。我可以添加 gmail.com,但我希望任何域名都可以使用...

答案1

您使用的是“dc_relay_domains='mycompanyemail.com'”,这就是您只能向公司邮件地址发送邮件的原因。仅当您需要限制电子邮件传递时才需要配置此参数,并且您需要将其留空才能解决问题。

其实dc_relay_nets是一个限制中继IP的参数。

干杯

答案2

设置dc_relay_domains=''而不是将其设置为*。信任将dc_relay_nets服务器的使用限制在本地服务器。

答案3

我也遇到过这种情况。我花了一段时间才弄清楚,不过我找到的解决方案很简单。

您有一个智能主机,您想使用它从本地主机发送电子邮件,该主机也运行 Exim4。因此,您似乎选择了正确的dpkg-配置 exim4-重新配置选项。正如您的 exim4.conf.conf 所显示的,dc_relay_domains 下有一个条目。到目前为止,一切顺利。

但如果该智能主机是一个配置良好的电子邮件服务器,它仍然只接受自己域名的电子邮件并返回550 继电器不允许错误。正如您所描述的那样,情况似乎确实如此。这是因为智能主机在尝试发送未识别的 SMTP 邮件时,只接受其自身域的电子邮件。否则,它将成为所谓的开放中继的垃圾邮件入口点。开放中继并不好。

使用智能主机时,您的本地 Exim4 需要使用现有用户帐户和凭据登录智能主机。这样,您的本地 Exim4 就会向智能主机表明自己是允许的用户,然后获得不受限制的访问权限,包括为外部域发送和转发电子邮件。

为了实现这一点,你需要在智能主机上有一个用户帐户,并编辑配置文件 /etc/exim4/passwd.client,添加以下行

mycompanyemail.com:[用户]:[密码]

这应该可以完成工作。只需确保智能主机 URL 相同,或与 exim4.conf.conf 中的 dc_relay_domains 条目匹配即可。(允许使用通配符字符串)不要忘记 chmod 640 passwd.client,因为它包含明文形式的用户凭据。

相关内容