0

お問い合わせフォームを作っています。基本的なバージョン (フォーム情報を収集し、自分のサイトから個人のメールにメールを送信する) を動作させることができましたが、「追加のヘッダー」を動作させることができないようです。次のヘッダーがある場合、正常に動作します。

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

しかし、次のような追加のメールヘッダーを追加しようとすると:

$headers .= 'To: Jack <Jack Johnson>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
$headers .= "\r\nX-Mailer: PHP/" ;

メール機能で「失敗」します。PHP バージョン 5.3.8 を使用しています。メール機能が機能していることを確認するために、次のようにしています。

$sendmail = mail($email_to, $email_subject, $email_message, $headers);

    if ($sendmail) {
        echo '<div>Thanks for submitting!</div>';
    } else {
        echo '<div>Fail</div>';
    }

これを間違ってフォーマットしていますか?

4

1 に答える 1

1
    $headers .= 'To: Jack <Jack Johnson>' . "\r\n";

コメントで述べたように、これはそこにある必要はありません。ただし、メールアドレスが含まれていないため、ほぼ確実に問題が発生します

また、コメントで述べたように\r\n、開始時にダブルを含めることで

    $headers .= "\r\nX-Mailer: PHP/" ;

最後に、これによって問題が発生することはありませんが、実際に行うべきではありません。

    $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

Bcc 行はヘッダーに属しません。それらはすべての受信者のヘッダーに表示され、Bcc のポイントが損なわれます。これは、さまざまなメール クライアントやサービスで断続的に処理されることがわかります。表示するものもあれば、保持するものもあれば、ヘッダーから「親切に」非表示にするものもあります。

PHP の mail() は実際には Bcc を処理するように設計されていないため、おそらく mail() 関数を呼び出して、Bcc 受信者に個別に送信する必要があります。

于 2012-02-03T01:46:50.170 に答える