web-dev-qa-db-ja.com

PHPメール送信BCC

これに似た質問がいくつかあることは知っていますが、うまく動かせません。

OK、データベースから$ emailListという変数に取得したメールのリストがあります。 $toセクションに変数を配置すると、フォームからメールを送信するコードを取得できますが、bccで動作させることはできません。 $toにメールを追加したこともありますが、違いはありません。

これが私のコードです。

$to = "[email protected]";
$subject .= "".$emailSubject."";
$headers .= 'Bcc: $emailList';
$headers = "From: [email protected]\r\n" . "X-Mailer: php";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= 'THE MESSAGE FROM THE FORM';

if (mail($to, $subject, $message, $headers)) {
    $sent = "Your email was sent!";
} else {
    $sent = ("Error sending email.");
}

私は両方のコードを試しました:

$headers .= 'Bcc: $emailList';

そして

$headers .= 'Bcc: '.$emailList.';

メールが分離されているからではありません。 $emailListセクションに$toを入れると動作するため、そうであることがわかります。


$messageビットとHTMLのものを無視して追加する必要があります。そのすべてを提供したわけではないので、このコードにはありません。

17
Ben Toms

あなたが持っている $headers .= '...'; に続く $headers = '...';; 2行目は1行目を上書きしています。

$headers .= "Bcc: $emailList\r\n";Content-type行で問題ないはずです。

補足として、Toは通常必要です。それ以外の場合、メールサーバーはメッセージをスパムとしてマークする場合があります。

$headers  = "From: [email protected]\r\n" .
  "X-Mailer: php\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Bcc: $emailList\r\n";
46
gregheo

BCCを設定していたが、FROMで変数を上書きしていた

$to = "[email protected]";
     $subject .= "".$emailSubject."";
 $headers .= "Bcc: ".$emailList."\r\n";
 $headers .= "From: [email protected]\r\n" .
     "X-Mailer: php";
     $headers .= "MIME-Version: 1.0\r\n";
     $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
 $message = '<html><body>';
 $message .= 'THE MESSAGE FROM THE FORM';

     if (mail($to, $subject, $message, $headers)) {
     $sent = "Your email was sent!";
     } else {
      $sent = ("Error sending email.");
     }
12
Bot