我有几个 ubuntu 服务器/桌面在同一台机器上使用 kvm 运行(在 ubuntu server 12.04 下)
通过每台虚拟机上的 postfix,我将每个根的邮件重定向到我的 gmail 帐户。
一切正常,
问题在于,有些守护进程发送通知时不识别机器名称。因此,当我收到电子邮件时,我不知道是哪个虚拟机发送的。
有没有办法在 postfix conf 的主题前添加自定义文本(如“asterisk_server:”),以从已发送的电子邮件中识别计算机?
非常感谢
答案1
你的前提是错误的:不是 postfix 或机器在不识别主机信息的情况下发送电子邮件;而是发送邮件的过程。
也就是说,并非所有进程都能在提交时正确设置主机名;对于此类不合规的客户端,请将其设置myorigin
为适合您环境的值,然后添加
append_at_myorigin = yes
到 main.cf。
例如,如果每个虚拟机的 postfix 实例都有 myorigin = $myhostname,这会将没有主机或域信息的任何地址转换为 user@$myhostname。这可以唯一地标识发件人和收件人。
然而,每个虚拟机不需要运行 postfix,说实话,可能不应该运行 postfix。
相反,配置一个空客户端将邮件提交给一个 MSA(可能是 postfix),并在一个集中式服务器上处理所有邮件。
答案2
我会尝试使用 REPLACE Subject 来检查 header_checks
答案3
您可以尝试以下方法:
default_database_type = cdb
indexed = ${default_database_type}:${config_directory}/
smtp_generic_maps = ${indexed}generic
generic:
# Expose which root sent the mail
root root+<hostname>
请注意,由于我没有在我的设置中公开 root 用户,所以我没有尝试过这个。