在php邮件功能中添加“from”名称

时间:2016-05-29 03:00:01

标签: php

在以下函数中,$ aFrom变量将“from”字段设置为收件人可以回复的电子邮件地址。但是,如果我想添加“from”名称该怎么办?例如,我的电子邮件地址是johndoe@gmail.com,但当该人收到电子邮件时,我希望他们看到该电子邮件来自“John Doe”。他们仍应该能够回复johndoe@gmail.com。

public static function SendMail_HTML($aFrom, $aTo, $aSubject, $aMessage) {
    $theHeaders =
        'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/html; charset=UTF-8' . "\r\n" .
        'From: ' . $aFrom . '' . "\r\n" .
        'Reply-To: ' . $aFrom . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    mail($aTo, $aSubject, $aMessage, $theHeaders);

}

2 个答案:

答案 0 :(得分:0)

'来自'标头可以包含名称以及预期收件人的电子邮件地址。您需要做的就是正确格式化。

变化:

'From: ' . $aFrom . '' . "\r\n" .

'From: John Doe <' . $aFrom . '>' . '' . "\r\n" .

将电子邮件地址包装在&lt;&gt;中字符。然后,只需更换&#34; John Doe&#34;具有正确名称的部分,可以直接使用,也可以使用变量。

注意:请确保清理您计划直接在电子邮件标头中使用的用户接受的任何值。

答案 1 :(得分:0)

您可以尝试这种变体。这是新的$aFromName参数,您可以将它用于传递发件人名称到您的函数,在这种情况下,接收者从例如John Doe <john@doe.com>获取电子邮件。电子邮件客户端仅显示John Doe&#39;如果您回复此电子邮件,将发送至john@doe.com

function SendMail_HTML($aFrom, $aTo, $aSubject, $aMessage, $aFromName = '')
{
    $aFrom = $aFromName === '' ? $aFrom : "$aFromName <$aFrom>";
    $theHeaders =
      'MIME-Version: 1.0' . "\r\n" .
      'Content-type: text/html; charset=UTF-8' . "\r\n" .
      'From: ' . $aFrom . '' . "\r\n" .
      'Reply-To: ' . $aFrom . "\r\n" .
      'X-Mailer: PHP/' . phpversion();
    mail($aTo, $aSubject, $aMessage, $theHeaders);
}