我正在运行 VPS 来托管我客户的网站。他们对电子邮件的需求非常有限(基本上他们只想要一个[电子邮件保护]地址,转发到他们的 gmail 帐户)。我曾尝试设置 exim4(在 ubuntu 16.04 上)来执行此操作,但我只得到550 Unrouteable address
。
Exim 当前可以正常发送邮件。但我的 /etc/aliases 文件没有任何作用:
postmaster: root
www-data: root
root: [email protected]
[email protected]: [email protected]
[email protected]: [email protected]
[email protected]: [email protected]
我运行dpkg-reconfigure exim4
并告诉它我想要接受的域名:
dc_eximconfig_configtype='internet'
dc_other_hostnames='#######.com; ######.com; ####.com;#####.co.uk;'
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
我发现 exim 的配置很混乱,而且文档似乎没有帮助。我想以“ubuntu 方式”配置 exim,这样将来的系统更新就不会破坏我的设置。
我感谢您提供的任何帮助。
答案1
从您的描述来看,您似乎应该将服务器配置为客户域的主要 MX。可能应该向您提供一些地址,例如、和abuse
。postmaster
这些应该由默认文件处理。 webmaster
hostmaster
/etc/aliases
默认配置仅使用本地部分来查找别名。您需要特别处理客户的消息。当您转发到 Gmail 时,您可能希望重新发送该消息而不是转发它。这应该可以解决 SPF 和 DMARC 问题。
如果您是辅助 MX,则需要设置的变量是dc_relay_domains
。这应该是您将作为辅助 MX 接受电子邮件的域的列表,以 (':') 分隔。空格是可选的,但可以使列表更易于阅读。
该文件的文档可通过命令获取man update-exim4.conf
。您可能还想熟悉Exim 邮件传输代理的规范文档。
该命令sudo dpkg-reconfigure exim4-config
将提供 的引导更新/etc/exim4/update-exim4.conf.conf
。但是,如果您愿意,也可以手动编辑该文件。
您可能希望将您作为辅助 MX 的域添加到 /etc/exim4/local_rcpt_callout。请阅读文档以验证这是否合适。在您接受邮件后退回您作为辅助 MX 的域的邮件可能会产生反向散射垃圾邮件。这可能会使您的服务器被列入黑名单。
默认配置不支持别名文件中的域名。我使用以下内容提供基于域的别名,尽管您可能不应该拥有您作为辅助 MX 的域的别名。
# 该路由器使用传统的 /etc/aliases 类型文件处理别名。 # #### 注意:您必须确保 /etc/exim/virutual/${domain} 文件存在 #### #### 这适用于标准的“名称:目的地”别名格式 # 域别名 vdomain_别名: debug_print = "R: $local_part@$domain 的 vdomain_aliases" 驱动程序 = 重定向 允许失败 允许延迟 域 = dsearch;/etc/exim4/virtual 数据 = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}} 符合条件_保留_域名
答案2
这是@BillThor 答案的摘要,其中添加了一些细节:
步骤1
编辑/etc/exim4/update-exim4.conf
并设置dc_other_hostnames
为包含您要转发邮件的所有域。(如果您忘记执行此操作,邮件将被退回)。
第2步
创建一个目录/etc/exim4/virtual
并为每个域添加一个文件,文件名称与域名完全相同。在文件中填写您要转发的别名。例如
# File: /etc/exim4/virtual/example.com
# This will forward [email protected] to [email protected]
me: [email protected]
# This will forward [email protected] to [email protected]
postmaster: [email protected]
步骤3
创建一个新文件/etc/exim4/conf.d/router/350_local-config_vdomain_aliases
,内容如下:
# This router handles aliasing using traditional /etc/aliases type files.
#
#### NB You must ensure that /etc/exim/virutual/${domain} file exist
####
#### This works with the standard "name : destination" alias format
# Domain aliases
vdomain_aliases:
debug_print = "R: vdomain_aliases for $local_part@$domain"
driver = redirect
allow_fail
allow_defer
domains = dsearch;/etc/exim4/virtual
data = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}}
qualify_preserve_domain
步骤4
跑步:
update-exim4.conf
service exim4 restart
感谢你的帮助@BillThor
答案3
其他答案没有错,但我想参考官方的 exim 规范(=文档):
这很有可能是未来几年内最新的和维护的文档。
答案4
如果您将 exim 作为守护进程运行(这是 Debian 软件包的默认设置),则不应在 exim 运行时直接调用 update-exim4.conf。对于 SMTP 接收或队列运行,exim 会分叉,新进程将使用新配置文件,而原始主 exim 守护进程仍将使用旧配置文件。您应该改用invoke-rc.d exim4 restart。
来源:https://manpages.debian.org/jessie/exim4-config/update-exim4.conf.8.en.html