Php 显示名称而不是电子邮件的电子邮件头的格式是什么?

Php 显示名称而不是电子邮件的电子邮件头的格式是什么?,php,header,email,Php,Header,Email,我正在尝试创建一个php脚本,它将使用mySQL数据库为我处理邮件列表,我已经准备好了大部分内容。不幸的是,我似乎无法使标题正常工作,我也不确定问题出在哪里 $headers='From: noreply@rilburskryler.net \r\n'; $headers.='Reply-To: noreply@rilburskryler.net\r\n'; $headers.='X-Mailer: PHP/' . phpversion().'\r\n'; $headers.= 'MIME-Ve

我正在尝试创建一个php脚本,它将使用mySQL数据库为我处理邮件列表,我已经准备好了大部分内容。不幸的是,我似乎无法使标题正常工作,我也不确定问题出在哪里

$headers='From: noreply@rilburskryler.net \r\n';
$headers.='Reply-To: noreply@rilburskryler.net\r\n';
$headers.='X-Mailer: PHP/' . phpversion().'\r\n';
$headers.= 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset=iso-8859-1 \r\n';
$headers.= "BCC: $emailList";
我在接收端得到的结果是:


“noreply”@rilburskryler.net RN回复:noreply@rilburskryler.netrnX-Mailer:PHP/5.2.13rnMIME-Version:1.0

要显示名称,而不是显示电子邮件地址,请使用以下命令:

"John Smith" <johnsemail@hisserver.com>
“约翰·史密斯”
简单

关于折线分隔符,这是因为您用撇号而不是引号将文本括起来:

$headers = array(
  'From: "The Sending Name" <noreply@rilburskryler.net>' ,
  'Reply-To: "The Reply To Name" <noreply@rilburskryler.net>' ,
  'X-Mailer: PHP/' . phpversion() ,
  'MIME-Version: 1.0' ,
  'Content-type: text/html; charset=iso-8859-1' ,
  'BCC: ' . $emailList
);
$headers = implode( "\r\n" , $headers );
$headers=数组(
“发件人:”发送人姓名“,
“回复:”回复姓名“,
'X-Mailer:PHP/'.phpversion(),
'MIME版本:1.0',
'内容类型:text/html;charset=iso-8859-1',
“密件抄送:”。$emailList
);
$headers=内爆(“\r\n,$headers”);
$to='1!'SendersName@domain.com';
$to.=','$_邮政['Femail'];
$subject='联系我们表格';
//信息
$message=”
电子邮件标题
重要信息如下
为了安全起见,您将收到此电子邮件。
";
//要发送HTML邮件,必须设置内容类型标题
$headers='MIME版本:1.0'。“\r\n”;
$headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
//附加标题
$headers.='To:senderEmailName'。“\r\n”;
$headers.='From:YourName'。“\r\n”;
$headers.='X-Mailer:PHP/'。phpversion()。“\r\n”;
$headers.=“密件抄送:$emailList”;
邮件($to、$subject、$message、$headers);
在a中,只有转义序列
\'
\
分别被
'
\
替换。您需要使用将转义序列
\r
\n
替换为相应的字符:

$headers = "From: noreply@rilburskryler.net \r\n";
$headers.= "Reply-To: noreply@rilburskryler.net\r\n";
$headers.= "X-Mailer: PHP/" . phpversion()."\r\n";
$headers.= "MIME-Version: 1.0" . "\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers.= "BCC: $emailList";
您还可以使用数组来收集标题字段,然后将它们放在一起:

$headers = array(
    'From: noreply@rilburskryler.net',
    'Reply-To: noreply@rilburskryler.net',
    'X-Mailer: PHP/' . phpversion(),
    'MIME-Version: 1.0',
    'Content-type: text/html; charset=iso-8859-1',
    "BCC: $emailList"
);
$headers = implode("\r\n", $headers);

当显示名称包含空格字符时,需要加引号。@Gumbo:刚刚测试过。没有引号的工作。不确定这是标准,还是只是一个非常灵活/宽容的结构……我猜是后者;看吧,不过我觉得引用一般来说是个好主意。感谢您提供完整、描述性的答案。此答案是一条红鲱鱼,因为
来自:noreply@rilburskryler.net
是RFC 5322中BNF的有效标头。见第3.4节。我怀疑秋波关于逃跑的回答才是真正的问题。
$headers = array(
    'From: noreply@rilburskryler.net',
    'Reply-To: noreply@rilburskryler.net',
    'X-Mailer: PHP/' . phpversion(),
    'MIME-Version: 1.0',
    'Content-type: text/html; charset=iso-8859-1',
    "BCC: $emailList"
);
$headers = implode("\r\n", $headers);