-5

私はphpmail()関数を使用しています。しかし、受信者が電子メールを開いたときに、彼/彼女の IP アドレスと電子メール ID がデータベース テーブルに保存されるようにしたいと考えています。

私のメール機能コードは-

<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();

// ---------- adjust these lines ---------------------------------------
$mail->Username = "mymail@gmail.com"; // your GMail user name
$mail->Password = ""; 
$mail->AddAddress("$userid"); // recipients email
$mail->FromName = "Nikhil Garg"; // readable name

$mail->Subject = "Newletter Subscription";
$mail->Body    = "$usermsg"; 
//-----------------------------------------------------------------------

$mail->SMTPSecure = "ssl";  
$mail->Host='smtp.gmail.com';
$mail->Port = 465;
$mail->IsSMTP(); // use SMTP
$mail->SMTPKeepAlive = true;
$mail->Mailer = "smtp";
$mail->CharSet = 'utf-8';  
$mail->SMTPDebug  = 0;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->From = $mail->Username;
if(!$mail->Send())
    echo "Mailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";
 }
 ?>

彼らはうまくいっています。しかし、このメールを開いたときに受信者の IP アドレスとメール ID を取得する方法がわかりません。

実際、私は5000を超えるメーリングリストを持っており、それらを都市、州、国で並べ替えたい. IPアドレスで、私はそれを行うことができます. 他の方法をご存知でしたら教えてください

私の目標はシンプルで本物です。より良い販売結果を得るために、その国の状況に応じてメールを送信できるように、その国を知りたいだけです。5000 人以上のユーザーにメールを送信して詳細を尋ねるのは正しい方法ではありません。

4

7 に答える 7

6
  1. メールを HTML 形式にする
  2. サーバー上の画像への参照を含める
  3. その画像のクエリ文字列に一意の識別子を追加します
  4. サーバーへのリクエストの時間、クエリ文字列 ID、およびリクエスト ソース IP をサーバーに記録させます。

ご了承ください:

  • これを行うことで、関連するプライバシー法に精通する必要があります (ほぼ確実に国際的に活動することに注意してください)。
  • ユーザーがメール内の画像を読み込まない場合、これは機能しません (また、ほとんどのメール クライアントはデフォルトで画像を読み込まないため、この種の追跡は成功しません)。
  • この種のトラッキング ID を追加すると、一部のスパム フィルターでメールがスパムに分類されます。
  • あなたの顧客の何人かは、あなたがこれを行うことで動揺/気分を害するでしょう.
  • 誰かがメールを転送すると、複数の人から同じ ID を取得します
于 2013-09-05T09:48:44.213 に答える
3

探しているものは Web ビーコンと呼ばれ、プライバシー ポリシーへのリンクを提供する限り使用でき、プライバシー ポリシーで指定する必要があります。

仕組み 基本的に、IP アドレスを取得できるサーバーから要求された 1x1 の画像が電子メールに配置されます。

欠点 多くのメール クライアントは画像を自動的に読み込まないため、正確な統計を取得できません。

*コード

あなたのメールに画像を置きます: <img src="http://example.com/file.php" />

file.php で:

//get ip address

//43byte 1x1 transparent pixel gif 
echo base64_decode("R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); 
于 2013-09-05T09:56:14.023 に答える
0

普通郵便ではできません。

メッセージ (テキスト) を送信し、ユーザーがその後何をするかを制御することはできません。が何mail idであるかはわかりませんが、ユーザーの IP を取得するためのいくつかのトリックがあります。

  • メールの内容をサーバーに置くことができます。ユーザーがクリックするのに十分信頼している/馬鹿げている場合は、リンク (ID 付き) を開いて、読み込まれた Web ページから情報を取得できます。
  • 画像を追加できます。ユーザーはそれらをロードします(デフォルトではありません!)、いくつかの情報を取得します

など。しかし、このような普通のメールを送信する場合: チャンスはありません。

于 2013-09-05T09:49:03.043 に答える
0

そうすることは合法ではないかもしれないという@Danielに同意しました。

ただし、あなたの意図が無害であると思われる場合は、送信される電子メールごとに一意の画像にハッシュ化された URL を使用することをお勧めします。この URL は、DB 内で一致する PHP ファイルを指しており、画像が読み込まれると、電子メール インスタンスが配信済みおよび既読としてマークされます。

もちろん、読者はあなたの電子メールから画像を読み込むことに同意している必要があります。そうしないと、うまくいきません。

于 2013-09-05T09:51:34.953 に答える
0

正直なところ、これはまったく不可能だと思います。

一部の電子メール クライアントには、電子メールが開封されたときに送信者に自動通知を送信できる「開封確認」システムが組み込まれていますが、これはオプションです。受信者がそれを無効にしているか、それをサポートしていない電子メール ソフトウェアを使用している可能性があります。 .

ただし、いずれにしても、通知にはユーザーの IP アドレスは含まれません。

HTML メールを送信する場合、サーバーからロードされるメッセージに埋め込みグラフィックを含めることができます。しかし、ほとんどの電子メール クライアントは、セキュリティ上の理由から (つまり、IP アドレスやその他の詳細を未知の送信者と共有することを正確に避けるために) 外部グラフィックをブロックしています。

Javascript は、セキュリティ上の理由から電子メールでも機能しないため、使用できません。

とにかく、何をするにしても、受信者の電子メール システムの機能とその設定に完全に依存します。あなたはそれを制御することはできず、ほとんどのユーザーの設定はおそらくあなたがしようとすることをブロックします.

要するに、あなたはあなたが望むものを手に入れるつもりはありません。

簡単な答え: ユーザーから情報を盗もうとするのではなく、必要な情報を求めてください。ユーザーがメーリング リストにサインアップするために入力するフォームの一部として、町と国のフィールドを用意する必要があるかもしれません。

于 2013-09-05T09:56:32.383 に答える