0

PHPのmail()を使用してメールを送信できないようです。PHPMailerとSwiftmailも試しましたが、成功しませんでした。ただし、サーバー上の次のコマンドはメールを正常に配信します。

cat test.txt | mail -s "test mail" my@email.com 

問題がどこから来ているのかを追跡する方法はありますか?mail()はtrueまたはfalseを返すようです。

4

2 に答える 2

0

PHP> = 5.2ではerror_get_last()、最後の関数呼び出しによって返されたエラーを取得する必要があります。リンク先のページに、古いバージョンのPHPから同等の情報を取得する方法の詳細があります。

PHPMailerに関して$mailer->ErrorInfoは、最後に発生したエラーを含むプロパティがあります。SwiftMailerには同様のものが必要です。ほとんどの場合、メールがコマンドラインから機能しているが、PHPまたはメーリングライブラリ内からは機能していない場合は、設定に誤りがあります。あなたのホストにはPHPのsendmail_pathiniパラメータが設定されていないと思います。

于 2010-05-12T15:16:40.013 に答える
0

error_reporting(E_ALL)を使用して、すべてのエラー、警告、および通知を有効にします。エラーをどこか有用な場所に移動させるか、いくつかの有用なことを行うコールバックを登録します。

次に、何が起こっているかがわかります。PHPのエラー処理はデフォルトでは役に立ちません(デフォルトはどこでも異なるため、実際にはオーバーライドする必要があります)。

おそらく、MTAがリレーを許可していないローカルホストに対してSMTPを実行するように構成されています。代わりにsendmailを使用するように構成を変更するか、ローカルホストからのリレーを許可するようにMTAを修正します。

于 2010-05-13T12:22:27.703 に答える