1

PHPでメールを送信する組み込みのサポートを使用しています。

$status=mail($to,$subject,$message,$headers,"-f $from");

私は LAMP サーバーを使用しており、sendmail Unix ユーティリティを使用しています。php mail() は、メールが sendmail に渡された場合に true ステータスを返すため、メールが正常に送信されたかどうかを確認できません。今私が望むのは、php と sendmail の間にソケット接続を作成して、メールが送信されたかどうかに関係なく「真のステータス」を取得できるようにすることです。

私はPHPが初めてです。これは、私が PHP で解決している最初の問題の一部です。ゴーグルしましたが、さらに先に進む方法が正確にわかりません。PHP側でメールが送信されたかどうかにかかわらず、どうすれば真のステータスを取得できますか?

4

2 に答える 2

3

ローカルの sendmail デーモンがメールを受信したことを確認しても、どこにも行きません。重要な部分は、sendmail がメールを別のメール サーバーに転送できたことです。

しかし、そのサーバーがメールの最終宛先である必要はないため、これも事実の半分にすぎません。そのため、メールが sendmail デーモンを離れた後は、メールが宛先に到達したかどうかについて何も言えません。

確実にする必要がある場合は、当然のことを行います。クリックする必要があるリンクをメールに含めます。

それ以外の場合は、ローカルの sendmail が機能していると想定して (おそらく実際に機能しているかどうかを監視します)、単純にメールを送信します。

于 2013-10-22T22:55:43.130 に答える
1

オプション 1:ソケット接続: RFCを読んでから、標準に準拠したSMTP クライアント プログラムを作成します。[人生の数週間を無駄にしたくない場合を除き、気にする必要はありません]

オプション 2: PHPmailerSwiftMailer 、またはメールが正常に送信されたかどうかを実際に通知する標準準拠の SMTP クライアントを既に作成しているその他の無数のメール ライブラリのいずれかを使用します。

于 2013-10-22T22:55:01.220 に答える