【问题标题】:Retrieve visitor's email address [closed]检索访问者的电子邮件地址 [关闭]
【发布时间】:2015-04-13 16:00:21
【问题描述】:

在我的网站上,如果访问者登录到他们的电子邮件收件箱,我想检索他们的电子邮件地址。我怎样才能做到这一点? (使用 PHP 或 Javascript)。

当他们访问该网站时,是否可以通过点击他们收到的电子邮件中的网站 URL 来检索他们的电子邮件地址。

(假设我向您发送了一封包含指向我网站的链接的电子邮件,如果您单击该链接,我想存储您的电子邮件地址!)

编辑:我会让人们(来自我已经拥有的电子邮件列表)填写匿名调查表。我想知道他们是否填写了它,如果没有,我将重新发送电子邮件。

提前致谢。

【问题讨论】:

  • 您必须明确要求用户提供电子邮件地址。否则这将是一个巨大的安全问题。
  • 所以,他们访问了您的网站,而您想窃取他们的 user@hotmail.com 地址?哎呀,这永远不会被垃圾邮件发送者滥用。没有先生!
  • 您可以使用有助于识别用户的数据为每个收件人自定义链接。
  • @MarcB 通常用于“取消订阅”链接。他们没有窃取您的电子邮件地址,因为他们已经有了它。
  • @Barmar:我认为 Marc B 只是意味着不可能仅根据用户登录到某些(网络)邮件客户端这一事实来获取用户的邮件地址,因为那是问题暗示,他错过了lady_OC实际上发送的邮件。

标签: javascript php email session url


【解决方案1】:

如果您向他们发送电子邮件,您可以在 URL 中添加一些可以识别他们的内容。您可以在 URL 中放置一个哈希码参数,然后在数据库中查找以获取相应的电子邮件。

你应该有一个像这样的数据库表:

CREATE TABLE customer_emails (
    hash CHAR(32) PRIMARY KEY,
    email VARCHAR(64)
);

当您发送电子邮件时,您会为每个客户添加一行,其中包含随机哈希码和他们的电子邮件。该电子邮件将包含如下 URL:

http://yourdomain.com/somescript.php?hash=XYZ123ABC...

当他们点击链接时,脚本会:

$stmt = $pdo->prepare("SELECT email FROM customer_emails WHERE hash = :hash");
$stmt->bind_param(':hash', $_REQUEST['hash']);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
    $email = $row['email'];
} else {
    // Resport that email is not found
}

【讨论】:

  • 为什么会被否决?这正是人们实际所做的。
  • 也许他希望我提供代码来详细说明如何做到这一点。
  • 哈希码会检索什么?如果我要在数据库中查找电子邮件?
  • 我添加了一个代码示例。
猜你喜欢
  • 2014-12-13
  • 2012-10-03
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多