web-dev-qa-db-ja.com

電子メールではなく名前を表示する電子メールヘッダーの形式は何ですか?

私は、mySQLデータベースを使用してメーリングリストを処理するphpスクリプトを作成しようとしていますが、そのほとんどは適切な場所にあります。残念ながら、ヘッダーを正しく機能させることができないようで、問題が何なのかわかりません。

$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.netrnReply-To:[email protected]:PHP/5.2.13rnMIME-Version:1.0

48
RonLugge

表示される電子メールアドレスではなく名前を付けるには、次を使用します。

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

単一引用符付き文字列 内では、エスケープシーケンス\'\\のみがそれぞれ'\に置き換えられます。エスケープシーケンス\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);
10
Gumbo