![在 sendmail.mc 中设置回复](https://linux22.com/image/722376/%E5%9C%A8%20sendmail.mc%20%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%9B%9E%E5%A4%8D.png)
我使用 sendmail 从 PHP 发送邮件,并将一些发往服务器的邮件转发到外部邮件提供商列表。转发是通过 /etc/mail/virtusertable 中的条目完成的:
[email protected] testuser
在我的 /etc/aliases 中我包含了邮件列表文件:
testuser: ":include:/home/mail-list"
到目前为止,此设置有效,但我想问一下如何更改testuser
通过 sendmail.mc 发送给虚拟用户的邮件的回复标头?如果不行,还有其他方法吗?
答案1
设置 Reply-To 的正确方法是在 MUA(在您的情况下为 PHP)中进行,而不是在 MTA 中进行。
例子:
$to = '[email protected]';
$subject = 'bla';
$message = 'bla';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n";
mail($to, $subject, $message, $headers);
更多信息:http://php.net/manual/en/function.mail.php
如果你坚持通过 sendmail 重写地址,则应使用 genericstable(请参阅http://www.sendmail.com/sm/open_source/docs/m4/features.html#genericstable)
将以下行添加到 sendmail.mc 并重新编译它:
GENERICS_DOMAIN('name.of.localhost')dnl
FEATURE(`genericstable')dnl
在 /etc/genericstable 中创建一个映射来转换传出地址。该文件如下所示:
本地用户新用户@新域
- 通过键入以下内容将映射转换为哈希数据库文件
makemap hash /etc/genericstable.db < genericstable