我正在使用php mail()
函数。但我希望当接收者打开电子邮件时,他/她的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个用户发送电子邮件并询问他们的详细信息是不正确的。
答案 0 :(得分:3)
请注意:
答案 1 :(得分:2)
您正在寻找的是一个网络信标,只要您提供一个链接回到您的隐私政策以及您必须指定的隐私政策,就可以使用它。
工作原理 基本上,1x1图像放在电子邮件中,从服务器请求您可以获取IP地址..
<强>缺点强> 许多邮件客户端不会自动加载图像,因此无法为您提供准确的统计信息
* 码
在您的邮件中放置图片:
<img src="http://example.com/file.php" />
在file.php中:
//get ip address
//43byte 1x1 transparent pixel gif
echo base64_decode("R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
答案 2 :(得分:1)
我做到了这一点,它的确有效!问题是gmail从他们自己的服务器加载信息,因此,每次用户打开电子邮件时,记录的IP都来自Gmail服务器,因此它显示的是Google IP地址而不是收件人IP,因此可以使用链接跟踪,当收件人单击链接并打开新选项卡时,您可以捕获正确的IP
答案 3 :(得分:0)
您无法使用普通邮件。
您发送消息(文本),并且无法控制用户之后执行的操作。现在我不知道mail id
是什么,但有几个技巧来获取用户的IP,我很同意上述用户认为它不是很好。
等。但是对于发送这样的普通邮件:没有机会。
答案 4 :(得分:0)
同意@Daniel认为这样做可能不合法。
但是,如果我认为您的意图是无害的,我建议对图像使用散列URL,每个发送的电子邮件都是唯一的。此URL指向与DB中的文件匹配的PHP文件,并在加载图像后将电子邮件实例标记为已发送和读取。
当然,读者必须已接受从您的电子邮件中加载图像。否则,它将无法工作。
祝你好运答案 5 :(得分:0)
说实话,我认为这根本不可能。
在某些电子邮件客户端中内置了一个“阅读回执”系统,可以在打开电子邮件时向发件人发送自动通知,但这是可选的 - 收件人可能已将其禁用,或者可能正在使用电子邮件软件支持它。
但无论如何,这不包括通知中用户的IP地址。
如果您发送HTML邮件,则可以在邮件中包含嵌入图形,该图形将从您的服务器加载。但是出于安全原因,大多数电子邮件客户端会阻止外部图形(即准确地避免与未知发件人共享其IP地址和其他详细信息)。
您无法使用Javascript,因为出于安全原因,它也无法在电子邮件中使用。
无论您做什么,都完全取决于收件人电子邮件系统的功能及其设置。你无法控制它,大多数用户的设置可能会阻止你尝试做的任何事情。
简而言之,你不会得到你想要的东西。
简单回答:只需向用户询问您需要的信息,而不是试图从中窃取信息。也许您应该将乡镇和国家/地区字段作为用户填写的表单的一部分,以便注册您的邮件列表。
答案 6 :(得分:-1)
我们可以在c面板中托管跟踪代码,并生成一个图像链接。只要将图片加载到电子邮件正文中,它就会触发代码,我们可以在csv文件中收集电子邮件ID,IP地址和时间。