ニュースレターを購読している約1万人のユーザーのデータベースがあります。サイトをaspからphpに変更しています。cronジョブでニュースレターを送信しています。不合格報告の記録を追跡したい。どうしてそれは可能ですか?案内してください、ありがとう。
2 に答える
PHPでは、メール機能を使用してメールを送信する場合、条件を確認する必要があります
if(mail($ to、$ subject、$ message、$ headers)){//メール配信の成功}else{//メールの失敗のコード}
PHPでは、メール機能を使用してメールを送信する場合、条件を確認する必要があります
if(mail($ to、$ subject、$ message、$ headers)){//メール配信の成功}else{//メールの失敗のコード}
これは、OPが実際に行おうとしていることに対して非常に不正確です...マニュアルから:
メールの配信が承認されたからといって、メールが実際に目的の宛先に到達するわけではないことに注意してください。
サーバーの種類と構成に応じて、さまざまな結果が得られます。適切で一貫性のあるインターフェイスを確保するには、SMTPを使用することをお勧めします。一般的に私はこれを行うためにライブラリを使用します...ソケットを使用して手動でそれを行うことができますが、なぜ車輪を再発明するのですか?プロジェクトに応じて使用するライブラリは3つあります...
このレベルの対話には、SwiftMailerまたはZend_Mailを使用します。これらは両方とも、SMTPからの情報の取得とメッセージの送信をサポートしているため、たとえば、失敗した受信者に関する情報を取得できます(SwitftMailerの例)。ZendとSwiftはどちらもカスタムスプールキューをサポートしているため、アプリケーション対応の方法でキューイングとメッセージの送信をより深く統合できます。SwiftMailerにはbatchSend機能もあります...これはZend_Mailでも利用できると思いますが、深く掘り下げることはありません。
ただし、これは戦いの半分にすぎません... NDRを実際に読み取るには、メールストアにログインし、メッセージをループしてから、NDRのヘッダーやメッセージ本文を解析するスクリプトを作成する必要があります(必ず確認してください)。 wikiページにリストされているRFCドキュメントを参照してください)、それに基づいてアクションを実行します。最近、私はこれを処理するためにZend_Mail_Storageを使用しました。これを行う必要がある場合は、ストレージがコンポーネントに含まれているため、Zend_Mailを使用して送信することもできます。正しく解析するには、NDRとステータスコードのRFCを確認する必要があります。
全体として、可能であれば、MailChimpやConstantContactなどのサードパーティサービスを統合することをお勧めします。作業量が大幅に減ります。時間の経過とともにこれに取り組んでいる開発者のチームがいない限り、サービスはおそらく全体的に優れた結果をもたらすでしょう。