Каков формат заголовков электронной почты, которые отображают имя, а не электронную почту?
Я пытаюсь создать php script, который будет обрабатывать список рассылки для меня, используя базу данных mySQL, и у меня есть большая часть ее на месте. К сожалению, я не могу заставить заголовки работать правильно, и я не уверен, в чем проблема.
$headers='From: [email protected] \r\n';
$headers.='Reply-To: [email protected]\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: [email protected]: PHP/5.2.13rnMIME-Version: 1.0
Ответы
Ответ 1
Чтобы иметь имена, в отличие от указанных адресов электронной почты, используйте следующее:
"John Smith" <[email protected]>
Легко.
Что касается прерывания ломаной строки, это потому, что вы вставляете текст в апострофы, а не кавычки:
$headers = array(
'From: "The Sending Name" <[email protected]>' ,
'Reply-To: "The Reply To Name" <[email protected]>' ,
'X-Mailer: PHP/' . phpversion() ,
'MIME-Version: 1.0' ,
'Content-type: text/html; charset=iso-8859-1' ,
'BCC: ' . $emailList
);
$headers = implode( "\r\n" , $headers );
Ответ 2
В одинарная кавычка, только escape-последовательности \'
и \\
заменяются на '
и \
соответственно, Вам нужно использовать двойные кавычки, чтобы escape-последовательности \r
и \n
заменялись соответствующими символами:
$headers = "From: [email protected] \r\n";
$headers.= "Reply-To: [email protected]\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: [email protected]',
'Reply-To: [email protected]',
'X-Mailer: PHP/' . phpversion(),
'MIME-Version: 1.0',
'Content-type: text/html; charset=iso-8859-1',
"BCC: $emailList"
);
$headers = implode("\r\n", $headers);
Ответ 3
$to = '[email protected]';
$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 <[email protected]>' . "\r\n";
$headers .= 'From: YourName <[email protected]>' . "\r\n";
$headers.='X-Mailer: PHP/' . phpversion()."\r\n";
$headers.= "BCC: $emailList";
mail($to, $subject, $message, $headers);