スクリプトがメールを送信できないように見えるさまざまな理由があります。明らかな構文エラーがない限り、これらのことを診断することは困難です。あなたが遭遇している可能性のある落とし穴を見つけるために、以下のチェックリストを実行する必要があります。
エラー報告は、すべてのエラー
エラー報告を報告することが有効と設定されていることを確認しますが、あなたのコードとPHPが遭遇する一般的なエラーのバグを根絶するために不可欠です。これらのエラーを受け取るには、エラー報告を有効にする必要があります。次のコードをPHPファイルの先頭(またはマスター構成ファイル)に配置すると、エラー報告が有効になります。
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
すべてのメールヘッダーが「返信先」などの「From」として
それは、共通のヘッダが欠落している場合、一部の迷惑ソフトウェアがメールを拒否しますが供給されていることを確認します
$headers = array("From: [email protected]",
"Reply-To: [email protected]",
"X-Mailer: PHP/" . PHP_VERSION
);
$headers = implode("\r\n", $headers);
mail($to, $subject, $message, $headers);
Make sure mail headers have no syntax errors
無効ヘッダーはヘッダーがないほど悪いです。あなたの電子メールを脱線させるために、間違ったキャラクターが1人でもかまいません。 PHPがこれらのエラーをキャッチしないので、構文が正しいことを再度確認してください。
$headers = array("From [email protected]", // missing colon
"Reply To: [email protected]", // missing hyphen
"X-Mailer: "PHP"/" . PHP_VERSION // bad quotes
);
受信者の値は時々、問題は、電子メールの受信者に対して誤った値を持つのと同じくらい簡単です
正しいことを確認してください。これは、誤った変数を使用している可能性があります。
$to = '[email protected]';
//他の変数.... メール($受信者、$件名、$メッセージ、$ヘッダ)。あなたはSMTPサーバーを持っているかに
mail('[email protected]', $subject, $message, $headers);
:// $受信者は、メール()関数の呼び出しに、これはハードコードにある受信者の値をテストするために$ に別の方法でなければなりませんか? php.iniのSMTP設定は何ですか? – Edwin
私は共有ホスティングのウェブサイトのbroを知らない。 –
"bro"私はどちらも知らないので、私はあなたを助けることができません。 – Edwin