0

誰かがこれが送信されない理由を理解するのを手伝ってもらえますか? 私はPHPが初めてです。

ホームページのお問い合わせフォームです。サーバー (localhost ではない) から送信すると、「メールが送信されませんでした」というコンソール メッセージが表示されます。

<?php

include 'ChromePhp.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

   $to = 'me@myemail.com';
   $subject = 'Email from Me';
   $message = $_POST['email'];

     if(mail($to, $subject, $message)){
        ChromePHP::log( 'Mail Sent');
     }else{
        ChromePHP::log( 'Mail Not Sent');
     }
}

?>

この質問は以前に尋ねられたことに気づきましたが、うまくいく答えが見つかりません。前もって感謝します!

4

4 に答える 4

2

mail() 関数にヘッダーを含める必要があります。例

$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

次に $headers パラメータを mail() 関数に挿入します。

mail($to, $subject, $message, $headers);
于 2013-01-26T07:44:22.720 に答える
1

エラーメッセージがなければ、私は推測することしかできません。おそらく、php.ini で SMPT サーバーを設定する必要があります。実行時に ini_set('SMTP', 'your_server_here') を使用してこれを行うことができます。

メール設定の詳細: http://php.net/manual/en/mail.configuration.php

持っていない場合は、ISP にオープン サーバーがあるかどうかを確認できます。ISP はオープンな SMTP サーバー (送信サーバー) を持っている場合があり、メール プログラム (Outlook) のセットアップ方法に関する指示を探すことで見つけることができます。

ただし、これを軽いテスト以外には使用しないでください。大量のスパムがサーバーを通過するのを嫌うだろうと想像できます。

編集:また、必要なヘッダーを読んでください。From ヘッダーが欠落しているようです。警告が表示されるはずです。こちらをご覧ください: http://php.net/manual/en/function.mail.php

When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.

Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.
于 2013-01-26T07:39:59.777 に答える
0

上記の PHP コードはまったく正しいため、メール サービスを確認する必要があります。

于 2013-01-26T07:36:44.640 に答える
0

一部のホスティング プロバイダーはデフォルトでメールの使用を許可していないため、ホスティング プロバイダーにメール サービスの有効化を依頼できます。

于 2013-01-26T08:33:18.947 に答える