Каков формат заголовков электронной почты, которые отображают имя, а не электронную почту?

Я пытаюсь создать 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 rnReply-To: noreply@rilburskryler.netrnX-Mailer: PHP / 5.2.13rnMIME-Version: 1.0

Related of "Каков формат заголовков электронной почты, которые отображают имя, а не электронную почту?"

Чтобы иметь имена, в отличие от указанных адресов электронной почты, используйте следующее:

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

В одной кавычной строке только escape-последовательности \' и \\ заменяются на ' и \ соответственно. Вам нужно использовать двойные кавычки, чтобы escape-последовательности \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 = "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); 
  $to = 'SendersName@domain.com'; $to .=', ' . $_POST['Femail']; $subject = 'Contact Us Form'; // message $message ="<html> <head> <title>Email title</title> </head> <body> <h3>important message follows</h3> <div> you are being brought this email to be safe. </div> </body> </html>"; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Additional headers $headers .= 'To: SendersEmailName <SendersEmailName@domain.com>' . "\r\n"; $headers .= 'From: YourName <YourName@domain.com>' . "\r\n"; $headers.='X-Mailer: PHP/' . phpversion()."\r\n"; $headers.= "BCC: $emailList"; mail($to, $subject, $message, $headers); .  $to = 'SendersName@domain.com'; $to .=', ' . $_POST['Femail']; $subject = 'Contact Us Form'; // message $message ="<html> <head> <title>Email title</title> </head> <body> <h3>important message follows</h3> <div> you are being brought this email to be safe. </div> </body> </html>"; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Additional headers $headers .= 'To: SendersEmailName <SendersEmailName@domain.com>' . "\r\n"; $headers .= 'From: YourName <YourName@domain.com>' . "\r\n"; $headers.='X-Mailer: PHP/' . phpversion()."\r\n"; $headers.= "BCC: $emailList"; mail($to, $subject, $message, $headers);