我有简单的代码段
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
标头。我做错了什么?
答案 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>