我们在一个站点上有一个有效的 exim 设置,用户可以在那里发送和接收邮件。我们正在尝试设置服务器以使用电子邮件将一些警告和错误发送到本地网络之外的地址。
问题是:
发送邮件的程序使用运行它的用户名和服务器的本地主机名发送邮件。这会导致邮件具有以下格式的发件人:[email protected]。Exim 将这些邮件发送到 ISP 的 SMTP 服务器,该服务器会拒绝这些邮件,因为它们有一个非法或无法验证的发件人(内部地址)。
我想我应该配置 exim 在以下情况下重写发件人:
- 发件人的域在本地网络上
- 接收者的域在本地网络之外
我尝试在 exim 配置中设置某种重写,但没有设法让它工作。我会展示我尝试过的内容,但我在上次访问该网站时没时间,不得不恢复到原始版本,丢失了我尝试过的所有更改。
该文件
/etc/email-addresses
应处理该问题。这是 Exim 发行版的标准部分。您需要为每个发送电子邮件的本地用户配置一条记录。尝试
/etc/email-addresses
喜欢的一行:在您的 MX 服务器上添加一个别名,例如:
使用
Reply-to:
标头允许收件人回复邮件。该文件
/etc/email-addresses
使用以下重写代码,该代码应位于rewrite
配置文件部分的开头。这些标志具有以下含义:
阅读Exim 规范的第 31 章,了解有关消息重写的更多详细信息
/etc/email-addresses
当您只需要为每个用户名关联一个电子邮件地址时,它会很方便。但是,如果您的用户需要发送多个地址的电子邮件,您将不得不/etc/email-addresses
每次修改,最终您将不可避免地使用错误的地址。另一种方法是使用
exim4
命令及其-f
选项发送电子邮件:请注意,要使该
-f
选项起作用,您需要您的用户成为 exim 的受信任用户或 exim 接受他作为允许的不受信任的发件人。在我的情况下,后者是默认的,这要归功于以下通配符
/etc/exim4/conf.d/main/02_exim4-config_options
:另一种解决方案是添加以下行
/etc/exim4/conf.d/main/00_local_settings
(假设 exim 的拆分配置,如果它不存在则创建它):这两个选项都需要重新加载 exim 的配置。在 Debian 下: