ti-enxame.com

Qual é o formato dos cabeçalhos de email que exibem um nome em vez do email?

Estou tentando criar um script php que manipulará uma lista de emails para mim usando um banco de dados mySQL, e eu tenho a maior parte no lugar. Infelizmente, parece que não consigo fazer com que os cabeçalhos funcionem corretamente e não tenho certeza de qual é o problema.

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

O resultado que estou recebendo no final do recebimento é:

"noreply"@rilburskryler.net rnReply-to: [email protected]: PHP/5.2.13rnMIME-versão: 1.0

48
RonLugge

Para ter nomes, em oposição aos endereços de email mostrados, use o seguinte:

"John Smith" <[email protected]>

Fácil.

Em relação às quebras de linha quebrada, é porque você está colocando o texto entre apóstrofos, em vez de aspas:

$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 );
110
Luke Stevenson

Dentro de um string entre aspas simples , apenas as seqüências de escape \' e \\ são substituídos por ' e \ respectivamente. Você precisa usar aspas duplas para ter as seqüências de escape \r e \n a ser substituído pelos caracteres correspondentes:

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

Você também pode usar uma matriz para coletar os campos do cabeçalho e reuni-los posteriormente:

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