(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_send_mail — 发送编码过的邮件
$to
,$subject
,$message
,$additional_headers
= [],$additional_params
= null
发送邮件。邮件头和内容根据 mb_language() 设置来转换编码。 这是 mail() 的一个包装器函数,所以详情参见 mail()。
to
被发送到该邮件地址。可通过逗号分隔地址的 to
来指定多个收件人。
该参数不会被自动编码。
subject
邮件标题。
message
邮件消息。
additional_headers
(可选)这通常用于添加额外的标头(发件人、抄送和密件抄送)。多个额外的标头应该用 CRLF(\r\n)分隔。验证参数不会被攻击者注入不需要的标头。
如果传递 array,则其键是标头名称,其值是相应的标头值。
注意:
发送邮件时,邮件必须包含
From
标头。这可以使用additional_headers
参数设置,或者可以在 php.ini 中设置默认值。如果不这样做,将导致类似于
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing
的错误消息。From
标头还设置了 Windows 下的Return-Path
。
注意:
如果未收到消息,请尝试仅使用 LF(\n)。一些 Unix 邮件传输代理(最著名的是 » qmail)自动将 LF 替换为 CRLF(如果使用 CRLF,这会导致两个 CR)。这应该是最后的手段,因为它不符合 » RFC 2822。
additional_params
additional_params
是一个 MTA 命令行参数。在使用
sendmail 时对设置正确的返回路径头很有帮助。
该参数由 escapeshellcmd() 内部转义以防止命令执行。escapeshellcmd() 阻止命令执行,但允许添加额外的参数。出于安全原因,应该验证此参数。
Since escapeshellcmd() is applied automatically, some characters that are allowed as email addresses by internet RFCs cannot be used. Programs that are required to use these characters mail() cannot be used.
Web 服务器运行的用户应作为受信任的用户添加到 sendmail 配置中,以防止在使用此方法设置信封发件人(-f)时将“X-Warning”标头添加到邮件中。对于 sendmail 用户,此文件为 /etc/mail/trusted-users。