PHP 邮件发件人:哪些收件人正在点击我的 [Html 消息] link?

PHP mailsender: Which receivers are clicking on my [Html message] link?

我正在使用 PHP 邮件发送器并向多个收件人发送 link。当他们单击 link 时,他们将重定向到一个 PHP 文件以获取其 ip,然后在该 PHP 文件上的 header 重定向到一个网页。

This is my Question: Which ip is for which email (or reciever) ??

这是 link 我发送给的代码:

<a href="http://www.example.com/data.php" style="(css part)" >blahblah</a>

这是获取接收者 ip 并写入 txt 文件的 php 代码:

<?php
$data = ' ip --> '.$_SERVER['REMOTE_ADDR']."\n" ;
$ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX);
header('Location: http://example2.com');
?>

如果我的问题不清楚,请告诉我描述 more.THANKS

如果我没看错你的问题,你实际上是想搞清楚是哪个人打开了你的邮件,而你是在代理收集IP地址,然后希望弄清楚是谁基于 IP 地址。

不幸的是,这是行不通的。许多(大多数)公司使用基于 NAT 的防火墙,成千上万的用户可能都通过同一个 IP 地址访问 Internet。反之,同一个用户早上在星巴克逗留、下午在办公桌前和回到家后都可以有不同的 IP 地址。

如果将 IPv6 添加到组合中,事情会变得更加复杂。

要解决您的问题,您需要采取不同的方法。一个简单的解决方案是为每个收件人分配一个随机但唯一的代码。一个 32 个字符的十六进制数字字符串就可以了。

当您发送电子邮件时,您会存储此代码及其所属的电子邮件地址。您电子邮件中的 link 将如下所示:

<a href="http://www.example.com/data.php?code=11921af91234a8813fa" style="(css part)" >blahblah</a>

请注意,这意味着您发送的每封电子邮件的 URL 都将不同。

在接收端,您的 data.php 将从 URL 中提取代码并将其保存到您的数据库中。

综上所述:您可能不会对这种自行开发的解决方案感到非常满意。您可以购买现成的软件(或作为服务),具有非常详尽的报告功能。

您最大的挑战可能是垃圾邮件过滤器和隐私过滤器 - 两者都可以在 URL 中准确查找此类代码。使用现成的商业解决方案,您可以将此类问题留给专家。