1

php でメールを送信するたびに、サイトが 120 秒間フリーズしてから、Fatal Error タイムアウトを超過しました。このコードのみでサイトを作成して、問題を切り分けようとしました。

 $to = 'my mail here';
            $subject        = 'invite';
            $from           = 'from our mail';
            $message        = 'asdf';

            if(mail($to, $subject, $message))
            {
                    echo 'sent to ' . $to;
            } else {
                    echo 'error';
            }

しかし、これもうまくいきません。メールは時々送信され、本当に私を悩ませます。どうすればこれをデバッグできますか? WindowsでApacheを使用しています。

4

3 に答える 3

1

エラーログを表示するようにphpを作成してデバッグしてみてください。以下のコードは、php コードの先頭に次のように配置することで使用できます。

<?php 
error_reporting(-1);
?>

メール送信コードで気付いたもう 1 つの点は、ヘッダーが含まれていないことです。メール機能が適切に動作するには、ヘッダーが必要です。

<?php
$to = "testing@example.com";
$subject = "Test mail";
$message = "This is a test email message.";
$from = "testing1@example.com";
$headers = "From:" . $from;
if(mail($to,$subject,$message,$headers)){
    echo "Mail is Sent.";
}else{
    echo "Mail not sent.";
}
?>
于 2013-08-09T09:47:16.180 に答える
0

Windows 上の PHP では、SMTP サーバーをphp.iniファイルで指定する必要があります。SMTP 構成ディレクティブが適切に構成されている場合は、構成をチェックインします。PHP が適切なサーバーに到達できないため、タイムアウトが発生する可能性があります。

于 2013-08-09T10:04:45.463 に答える
0

PHP mail() timeoutを確認してください。同様の問題があると思います。

また、php.ini で使用している設定が、インターネット サービス プロバイダー (localhost を介してこれを行っている場合) またはホスティング プロバイダー (サーバーにホスティング サービスを使用している場合) によって推奨されているものであることを確認してください。一部のプロバイダーでは、送信メールに不安定な設定が必要です。

于 2013-08-09T15:38:31.797 に答える