私は何百もの電子メールがユーザーによって送信され、それらの電子メールを追跡して電子メールが開かれているかどうかを知ることができる電子メールシステム(PHPベース)に取り組んでいますか?誰かが電子メールを開いたかどうかはどうすれば分かりますか?
どのようにすればいいですか?
私は何百もの電子メールがユーザーによって送信され、それらの電子メールを追跡して電子メールが開かれているかどうかを知ることができる電子メールシステム(PHPベース)に取り組んでいますか?誰かが電子メールを開いたかどうかはどうすれば分かりますか?
どのようにすればいいですか?
私の知っている唯一の方法 - - そしてそれは非常に信頼性がないのですが、あなたのようなものが含まれているHTMLメール送信することである
<img src='http://www.domain.com/mailcheck.php?user=123'>
画像が、プロセス中に、 GETユーザーを追跡できます。領収書を要求するようにメールヘッダーを変更する方法を見つけることもできますが、その方法はわかりません。また、要求の自発的な性質のため信頼できません。
シンプル
おかげで、あなたは1x1の画像を返すPHPスクリプトを設定します。そのスクリプトにUser-AgentとIPを記録させます(あなたも参照者を記録することができます)。
これを電子メールに埋め込みます。
gmailはイメージを常に表示し始めていますが、自分のサーバーからホストするため、メールが開いているかどうかを知ることはできますが、正しいIPを追跡できない場合があります。あなたはmailchimpはそれをしない方法を知ってもらうことができますEffect of gmail caching and showing images by default
を:ここにいくつかの参照をチェックMailChimp Working
EDIT: コード参照:checkopen.php
スクリプト内
<img src="http://www.example.com/checkopen.php?user_id=20" />
、user_id
フィールドを取得し、今対応このフィールドに、このユーザーがメールを開いたことを保存します。
メールを送信する際には、メールを送信するたびにuser_id
フィールドを増やしてください。
この画像がレンダリングされるたびに、対応するURLが呼び出されるため、開いているメールのステータスについてシステムにログインできます。
PHPコード:
メールアドレスはdisposition notification fieldです。これは、これを達成するために使用できます。それはもちろん、リモート側のMUAに依存します。彼らはMDN(他の2つの答えが示唆している破壊的なものではなく、丁寧な要求である)を無視するのは自由です。あなたの最終的な受取人のMUAはあなたのメッセージが読まれたことを伝えるメールをあなたに返します。あなたのSMTPサーバはこれらをフィルタリングすることができ、送信された電子メールを応答にマップする何らかのプログラムを実行することができます。
私は、ユーザーの追跡を可能にする小さなHTMLスニペットを埋め込むことに非常に賛成です。
シンプルなPHPファイルがインクルードされたイメージを生成していなかった理由を正確には分かっていませんでしたが、私自身のPHP 5.4.30 Webサーバーで拒否されなかった画像ファイルを生成するもう一つの非常に複雑な方法があります。
ここでは、インデックスに入れたコードを示します。/ email_image /サブディレクトリ内のPHPファイル:画像ファイル名については
<?php
$message_id = $_REQUEST['message_id'];
$graphic_http = 'http://mywebsite.com/email_image/message_open_tracking.gif';
$filesize = filesize('message_open_tracking.gif');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Disposition: attachment; filename="a_unique_image_name_' . $message_id . '.gif"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$filesize);
readfile($graphic_http);
exit;
?>
、私は次のように使用:
http://mywebsite.com/email_image/?message_id=12345
email_imageフォルダ内にも "message_open_tracking.gif" という名前の空白の1×1 GIF画像です。
index.phpファイルは、メッセージを読み取ったとマークするためにmessage_idを使用するように改訂することもできます。受信者の電子メールアドレスなどのクエリ文字列に他の変数が含まれている場合、それらの値をindex.phpファイル内で使用することもできます。次の記事のためのベネット・ストーンへ
感謝: http://www.phpdevtips.com/2013/06/email-open-tracking-with-php-and-mysql/
あなたが言ったように、それはあまり信頼性がありません。また、これは破壊的なものです。私はそれが私を追跡するためにこのようなトリックをする電子メールを信頼しません。 –