在 sendmail.mc 中设置回复

在 sendmail.mc 中设置回复

我使用 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

相关内容