更改发件人名称php邮件而不是sitename@hostname.com

Sur*_*ika 20 php email email-headers

我想从我的php发送电子邮件:

$to = 'it@7sisters.in';
    $email_from = "info@7sisters.in";

    $full_name = 'Suraj Hazarika';
    $from_mail = $full_name.'<'.$email_from.'>';



    $subject = "testing sender name";
    $message = "";
    $message .= '
            <p><strong>This is only a test . Please do not reply.</strong><br />
    ';
    $from = $from_mail;

    $headers = "" .
               "Reply-To:" . $from . "\r\n" .
               "X-Mailer: PHP/" . phpversion();
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        
    mail($to,$subject,$message,$headers);
Run Code Online (Sandbox Code Playgroud)

我正在关注教程PHP电子邮件表单发件人姓名而不是电子邮件?但我仍然收到带有主机名的发件人姓名的电子邮件.

     From                              Date             Subject 
sisters@rsx02.justhost.com  Fri, 11:24 pm       testing sender name
sisters@rsx02.justhost.com  Fri, 11:24 pm       testing sender name
Run Code Online (Sandbox Code Playgroud)

Tro*_*ott 22

您只能$fromReply-To标题中使用.如果您希望它在From标题中,则需要在From标题中设置它.

在你的mail()命令之前加上这样的东西:

$headers .= 'From: ' . $from . "\r\n";
Run Code Online (Sandbox Code Playgroud)


Ben*_*Ben 18

我来到这个问题寻找不同但有相似词语的东西,所以这里是如何做我想要的:

from标题中,将地址放在尖括号中,并将"发件人名称"放在它之外.

from: Don Draper <don.draper@website.com>\n
Run Code Online (Sandbox Code Playgroud)

我希望收件箱能够Don Draper代替,don.draper而不是这样做.


Ahm*_*awy 9

在标题行之前添加这一行

$headers .= "From: Your Name <sitename@hostname.com> \r\n";
Run Code Online (Sandbox Code Playgroud)

所以代码将是

$headers = "";
$headers .= "From: WIFI Metropolis <sitename@hostname.com> \r\n";
$headers .= "Reply-To:" . $from . "\r\n" ."X-Mailer: PHP/" . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        
mail($to,$subject,$message,$headers);
Run Code Online (Sandbox Code Playgroud)


ind*_*two 5

您还可以尝试From使用PHP mail()函数中的第五个参数将地址添加到邮件的"信封"中:

mail($to_mail, $subject, $message, $headers, "-f$from_email");
Run Code Online (Sandbox Code Playgroud)

参考这里.

这里有关于邮件标题和信封的参考

请注意,某些服务器设置可能会禁止此操作或发出警告,具体取决于其配置和/或邮件传输代理的配置.这个答案讨论了如何更新sendmail的"可信用户".