2011-11-15 16 views
1

私は、登録ユーザーがいくらかの電子メールを送信できるようにする小さな電子メール送信者ポータルを開発しています。私はlocalhost(私はApacheとPHPの同じサーバーを意味する)に電子メールを送信するためにインストールされたSMTPサーバーとの安全な接続を使用し、送信された電子メールの量を制御するシステムを実装しました。同時に多くの電子メールを送信しないようにする)。PHPでSMTPによって送信された電子メールを追跡する

PHPMAilerクラスを使用して電子メールと自分のクラスを送信してスケジュールします。

私が遭遇する唯一の欠点は、エラーが発生したかどうかを知るために送信した電子メールを追跡することです(特に、アドレスが見つからない、受信者のメールボックスがいっぱいなど...)ユーザーが電子メールを開いたときといつ。

私は実際にはSMTPサーバーについてほとんど何も知らないことを認めますが、送信された電子メールを要求するためにSMTPサーバーと通信できるPHPクラスを見つけることができるリソースがあるかどうかを知りたいと思います。または送信された電子メール情報を取得するためにPHPに何らかの方法がある場合、または私の目的に役立つ可能性があるその他のものがある場合。

+1

サーバは通常、エラーのためにバウンスバック電子メールを発行し、オープンレートトラッキングのために電子メールの本文にイメージを含め、ダウンロードされたかどうかを検出する。 – Treffynnon

+0

"返信先"のヘッダーに指定できるメールはありますか? –

+0

それは一方通行です... – Treffynnon

答えて

1

電子メールを追跡する方法はありませんが、2つのオプションがあります。 1つは、バウンスされたメッセージをチェックすることです。通常、発信メッセージは、バウンスが行くリターンパスを指定します。

もう1つの方法は、送信側サーバーを制御することです。送信しているサーバーが、たとえばユーザーが見つからないと訴えるサーバーである場合は、SMTPエラーコードのいずれかが表示されます。 SMTPエラーコードは、500のハードバウンス(ユーザーのような永続的なエラーはここではわかりません)と400のソフトバウンス(一時的なエラー)であるという点でHTTPのものとほとんど同じです。

最後に、(PHPスクリプトでレンダリングする)小さな画像を追加して電子メールの開封を追跡することも可能ですが、ユーザーが画像をブロックすると明らかにこれは役に立ちませんが、ユーザは電子メールを読む(リンク追跡と共に)

+0

ありがとうございました!開かれた電子メールを追跡するために画像で試してみるよ、確かに! –

+0

私は、SMTPサーバーからのエラー応答をどこでどこで受信できるのか分かりません。つまり、私は自分のSMTPサーバーから電子メールを送信します(私が制御できる)。その後、誰が私にバウンスメッセージを与えているのですか?そして、私はそれをどのように読むことができますか、そしてどこで?応答を返すようにSMTPサーバへのリターンパスを指定するにはどうしたらいいですか(確認メッセージかエラーメッセージ)? ありがとうございました! –

+0

+1は私のコメントに素敵な展開です。 – Treffynnon

3

SMTPサーバーが受信者のメールサーバーにメールを送信すると、残念ながらメールを追跡する方法はありません。

受信メールサーバーでエラーが発生した場合は、送信者のアドレスにエラーメッセージが自動的に送信されます。これはおそらく、電子メールの送信を試みる登録ユーザーの電子メールアドレスになります。

これが役に立ちます。

+0

あなたの答えをありがとう!メッセージに画像を追加することは考えていませんでした.1x1pxの空白の画像でさえ、私のPHPスクリプトによってレンダリングされました。そこから、私は必要な情報を取得できます。提案していただきありがとうございます! –

関連する問題