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

时间:2011-12-03 05:29:35

标签: 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);

我正在关注教程PHP E-mail Form Sender Name Instead Of E-mail?,但我仍然收到带有主机名的发件人姓名的电子邮件。

     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

6 个答案:

答案 0 :(得分:20)

您只在$from标题中使用Reply-To。如果您希望它位于From标头中,则需要在From标头中进行设置。

mail()命令之前输入类似的内容:

$headers .= 'From: ' . $from . "\r\n";

答案 1 :(得分:16)

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

from标题中,将地址放在尖括号中,将“发件人名称”放在它之外。

from: Don Draper <don.draper@website.com>\n

我希望收件箱说Don Draper而不是don.draper,这就是如何做到的。

答案 2 :(得分:5)

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

mail($to_mail, $subject, $message, $headers, "-f$from_email");

参考here

有关邮件标题和信封的参考here

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

答案 3 :(得分:3)

在标题行

之前添加此行
$headers .= "From: Your Name <sitename@hostname.com> \r\n";

所以代码将是

$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);

答案 4 :(得分:1)

只需添加From标头即可。这样的事情。

$headers .= "From: website@mydomainname.com";

答案 5 :(得分:0)

尝试将From:添加到标题

$headers = "" .
           "Reply-To:" . $from . "\r\n" .
           "From:" . $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";  

某些MTA可以更改/忽略此定义以避免垃圾邮件,并覆盖PHP.ini中配置的SMTP用户