php - 如何设置sendmail中的From字段?

标签 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 的电子邮件。我不想在调用 mail 时显式设置 From: header 。我做错了什么?

最佳答案

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

在 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: header :

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

关于php - 如何设置sendmail中的From字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519115/

相关文章:

php - Wordpress,为所有链接添加一个 <span> 标签

php - 可以在AWS RDS中动态创建数据库吗?

linux - 在 fedora 20 上安装 checkinstall

linux - 打印某些匹配关键字之间的所有字符串的命令行工具

c - C的多线程性能库?

php - 在 PHP5 ubuntu 中自动加载扩展

PHP:在运行时更改 xdebug.profiler_output_name 选项

python - 加载共享库 : libssl. so.0.9.8 时出现 django runserver 错误:无法打开共享对象文件:没有这样的文件或目录

sorting - Unix 下划线字符的排序处理

Ruby 系统调用获取有关命令失败的信息