如何在sendmail中设置From字段?

时间:2014-02-03 03:08:57

标签: php linux unix ubuntu sendmail

我有简单的代码段

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, 'Content-Type: text/html; charset=UTF-8;');

我的服务器在Ubuntu上。所以php.ini

sendmail_path = /usr/sbin/sendmail -t -i -F "Test" -f "example@mysite.test"

我的/etc/hosts

127.0.0.1       localhost.localdomain localhost pm

我正在接收来自www-data@localhost.localdomain的电子邮件。在致电From:时,我不想明确地设置mail标头。我做错了什么?

1 个答案:

答案 0 :(得分:0)

为了正确的顺序,我再次将我的评论作为常规答案写下来。

在PHP的INI文件中,包含非字母数字字符的字符串值必须用双引号(")引用。
这在parse_ini_file() documentation中有描述,虽然它似乎也适用于PHP的内部(配置)INI解析。

因此,您的INI行应该是:

sendmail_path = "/usr/sbin/sendmail -t -i -F Test -f example@mysite.test"

您可以选择引用sendmail参数的值(请注意转义序列):

sendmail_path = "/usr/sbin/sendmail -t -i -F \"Test\" -f \"example@mysite.test\""

现在,sendmail将生成此From:标头:

From: "Test" <example@mysite.test>