我遇到了使用错误 IP 地址发送的 SMTP 邮件问题。
我使用 exim 发送邮件。我发现指引“如何手动配置 Exim 的传出 IP 地址”,建议修改/etc/mailips
。这个文件看起来正是我要找的。
不幸的是,我的服务器上不存在该文件。仔细检查后,我认为该文件不是正常 exim 配置的一部分,而是由某个专有控制面板包创建的,以简化 exim 的配置。我在 exim 中找不到任何直接等效文件。
如何在 exim 中配置每个域的外发邮件 IP 地址?
答案1
看起来该文件确实是由某个专有控制面板包创建的。
好消息是,您可以轻松实现自己的功能。Exim 配置可以使用该interface
属性来固定 IP 地址。理论上,每个服务器只有一个 IP,但只需编写少量代码即可使其动态化。
这是改编自loginroot文章:
- 找到你的 exim 配置文件
exim.conf
。他们建议/etc/exim.conf
,我的是在/etc/exim/exim.conf
- 创建一个文件来存储域名 - IP 关联。我选择了
/etc/exim/domainips
,他们更喜欢/etc/virtual/domainips
- 像这样填写域名和 IP:
some-domain.com: 123.123.123.123
anotherdomain.org: 98.98.98.98
- 在
exim.conf
文件中,找到以下部分remote_smtp:
interface = some.ip.add.ress
如果下面有一行remote_smtp:
,请将其删除。- 使用之前的文件名添加一行:
interface = "${lookup{$sender_address_domain}lsearch{/etc/exim/domainips}{$value}}
- 重新启动 exim。
service exim restart
对我有用(Centos),或者另一种方法是/etc/init.d/exim restart
然后,根据发件人的域,在发送每封电子邮件时从文件中获取 IP。
注意:除了在无控制面板的系统中工作外,这似乎也适用于 Vesta CP