我有一个php脚本,该脚本发送了纯文本电子邮件,其中包含指向某些操作(例如确认和协议等(的链接。
我注意到的是,Outlook的Web版本将自动检测链接并在用户单击之前访问后台链接。我注意到了这一点,因为一旦我打开电子邮件,数据库中的东西就会改变。另外,请检查Apache访问日志,我看到 bingpreview/1.0b 作为用户代理。
这很糟糕,因为用户可能不想执行这些操作。
是否有我可以发送的电子邮件标题来禁用此行为?建议?
正如我在评论中写的那样:
"您可以使用某种形式的输入按钮和一个有条件语句中设置的复选框。这些都无法单击/检查。"
旁注校正:我犯了一个微小的语法错误。应该读为:
"您可以使用某种形式的输入按钮和一个有条件语句中所有设置的复选框。这些实际上被单击/检查,必须由真实的人进行实际完成。"
甚至Google建议使用复选框。
- https://support.google.com/mail/answer/81126?hl= en
在"订阅"下:
"通过手动检查Web表单上的框或软件中的框。"
和
"在Web表单上或在软件中设置复选框,默认情况下订阅所有用户(要求用户明确选择邮件(。"
此外,您可以使用recaptcha:
- https://www.google.com/recaptcha/intro/
这是Google和复选框上的另一篇文章;即使它是"垃圾邮件相关",也适用同样的逻辑:
- http://blogs.findlaw.com/technsoffer/2014/12/google-replaces-replaces-anoying-annoying-anti-spam-captcha-with-checkbox-kittens.html
从该文章中提取:
" Google本周引入了一个更好的解决方案:"无验证码recaptcha",我们将其称为"复选框和小猫"。
和
"就是这样。"衡量用户如何与页面进行交互,并与CAPTCHA互动,以确定除了简单的复选框之外是否还需要其他任何内容。如果您被检测为人类,则选中一个框并点击提交。" <</em>
所有这些集合在条件语句中,以检查是否单击了提交按钮,并使用每个名称属性设置了复选框。
即:
<form action="handler.php" method="post">
<input type="checkbox" value="XX" name="checkbox_x">
<input type="submit" name="submit_button">
</form>
<?php
if(isset($_POST['submit_button'])){
if(isset($_POST['checkbox_x'])){
// Do your thing
// Additionally, you could place GET array(s) if they're being used
// and also check to see if any are set and not empty.
}
}
?>
Sidenote:您还可以使用&&
(和(逻辑操作员检查复选框是否等于上述内容。
示例: && $_POST['checkbox_x'] == 'XX'
。
您也可以在堆栈上查看此Q&amp; a:
- 复选框作为CAPTCHA的替代方案?
提出了蜜饯和其他一些建议。
从您删除的答案中提取以下内容。
参考:
- http://south634.com/is-hotmail-clicking-your-account-confirmation-links/
"您可以做的一件事是,设置.htaccess,以阻止BingPreview用户代理访问您的注册和密码重置路径(您的路径可能与此示例有所不同(::
RewriteEngine On
RewriteCond %{REQUEST_URI} /signup/confirm/ [OR]
RewriteCond %{REQUEST_URI} /resetting/reset/
RewriteCond %{HTTP_USER_AGENT} BingPreview
RewriteRule . - [F,L]
"这将阻止Bingpreview爬网,但我觉得这是一个不完整的解决方案。您可以根据需要阻止尽可能多的烦人的用户代理,但是您真的想花所有的时间去寻找哪个时间电子邮件提供商在电子邮件中提供类似的链接预览?"