使用 html 检索收件人的电子邮件地址

Posted

技术标签:

【中文标题】使用 html 检索收件人的电子邮件地址【英文标题】:retrieve the receiver's email address using html 【发布时间】:2014-03-11 23:15:28 【问题描述】:

所以我发送了一封 html 电子邮件,它是一个邀请,我希望用户点击加入!如果他们想加入邀请,但我不知道如何检索他们的电子邮件地址。我只能得到多少“是”的点击,我看不到哪封电子邮件实际上说“是”。我怎样才能得到他们的电子邮件地址呢?除了为他们提供一个要求他们填写的文本字段之外。

有什么想法吗?谢谢:)

到目前为止我的 cade:

<html>
<body>
    <form action="myserver.com" method="POST" target="_blank">
        <input type="hidden" name="answer" value="yes"/>
        <input type="submit" name="submit" value="Join!"/>
    </form>
</body>
</html>

对于服务器端,我使用 php 来检索数据。从那里可以做些什么吗?据我所知,我不能在我的电子邮件中使用 PHP 或 JS。

【问题讨论】:

您使用哪种语言检索数据?您的服务器端(或 javascript)代码是什么样的? 您需要以编程方式添加一些标识,例如添加另一个隐藏字段,其中包含您用于当前电子邮件的电子邮件地址。但是,您不能将一封 HTML 邮件复制/粘贴给所有人。您可以使用编程语言和服务器吗? 对于服务器端,我使用 PHP 来检索数据。从那里可以做些什么吗?据我所知,我不能在我的电子邮件中使用 PHP。但是在服务器端,我正在使用它。我可以使用任何其他所需的语言,只要它能完成工作。有什么帮助吗? :) @x29a 至于电子邮件,只有 HTML。但是一旦表格发布,我就可以使用各种语言来检索数据。还有你建议的输入隐藏的东西,聪明!但是我也有 450 个人想发送这封电子邮件,所以是的 :( 【参考方案1】:

既然提到了 PHP,为什么不通过编程方式发送电子邮件呢?

假设您有一个有效的 SMTP 配置(请参阅Local SMTP),所有电子邮件地址都在一个数组中,您可以在电子邮件中使用PHP 到send。

请参阅资源中的示例以获取 HTML 所需的特定标头

<?php
$email_addresses = array('foo@bar.tld', 'no@name.it');

// subject
$subject = 'Invitation';

// message
$message = '
<html>
<body>
    <form action="myserver.com" method="POST" target="_blank">
        <input type="hidden" name="answer" value="yes"/>
        <input type="hidden" name="email" value="%placeholder%" />
        <input type="submit" name="submit" value="Join!"/>
    </form>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set - general part of the header
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Invitation <your_email@example.com>' . "\r\n";

// iterate over all email addresses
foreach ($email_addresses as $address) 

    // specific version of header
    $header = $headers . 'To: ' . $address . ' . "\r\n";

    // specific version of message
    $msg = str_replace('%placeholder%', $address, $message);

    // Mail it
    mail($address, $subject, $msg, $header);

?>

与往常一样,有很多方法可以到达罗马,因此您也可以在邮件中输入一个链接,该邮件的电子邮件地址(或其他类型的 ID)为 GET 参数。

特别注意编码(ISO 与 UTF)。

此外,您的网络服务器将是电子邮件的发件人,因此如果地址与 FROM 字段不同,它可能会被垃圾邮件过滤器捕获。

让 PHP 的 mail() 函数工作可能有点棘手,但互联网上有很多解决方案,祝你好运!

【讨论】:

【参考方案2】:

您必须将他们的地址作为参数放在 href url 中。这是找回它的唯一方法。

我不会费心把所有的 PHP 邮件代码放在这里,但是当你传递这样的东西时:

$address = "their.email@gmail.com";
$msg = '... <a href="http://yoursite.com?email='.$address.'">click here</a> ...'
mail($address, $subject, $msg, $header);

它将像这样在电子邮件中呈现:

<a href="http://yoursite.com?email=their.email@gmail.com">click here</a>

当他们点击它时,它会将参数发送到您的网页,您可以通过$_GET['email']访问它

【讨论】:

以上是关于使用 html 检索收件人的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

php imap 从电子邮件地址获取

如何使用 R RDCOMClient 检索 Outlook 收件箱电子邮件?

抄送电子邮件和多个收件人电子邮件地址不起作用

使用 EWS for Exchange 2013 获取收件人电子邮件地址

如何使用 Mail::Sender 发送没有“收件人”地址的电子邮件?

如何使用存储在 Excel 中的地址向多个收件人发送电子邮件?