我有一个PHP脚本,可以发送纯文本电子邮件,其中包含某些操作的链接,如确认和协议等。
我注意到,在用户点击它之前,Outlook版本的Outlook会自动检测链接并在后台访问该链接。我注意到了这一点,因为只要我打开电子邮件,就会发生数据库中的更改。 另外,检查Apache访问日志,我将 BingPreview / 1.0b 视为用户代理。
这非常糟糕,因为用户可能不想执行这些操作。
我是否可以发送电子邮件标头来禁用此行为?建议?
答案 0 :(得分:1)
我在评论中写道:
"你可以使用某种形式的输入按钮和一个在条件语句中设置的复选框。那些无法实际点击/检查。"
侧面纠正:我犯了轻微的语法错误。那应该是:
"你可以使用某种形式的输入按钮和一个在条件语句中设置的复选框。那些无法虚拟点击/检查,并且必须由真人完成。"
即使Google建议使用复选框。
"订阅":
"通过手动检查网络表单或某个软件中的框。"
和
&#34;在网络表单或软件中设置一个复选框,默认订阅所有用户(要求用户明确选择退出邮件)。&#34; < / p>
此外,您可以使用reCAPTCHA:
这是关于Google和复选框的另一篇文章;即使它与垃圾邮件相关&#34;,同样的逻辑适用:
从那篇文章中拉出来:
&#34; Google本周推出了一个更好的解决方案:&#34; No CAPTCHA reCAPTCHA,&#34;我们将其称为&#34;复选框和小猫。&#34;
和
&#34;那就是它。一个复选框。 &#34;我不是机器人。&#34;尽管谷歌没有详细介绍该方框背后的魔力,但blog post announcing the change表示风险分析引擎&#34;衡量用户如何与页面进行交互,并使用CAPTCHA来判断是否需要更多简单的复选框。如果您被检测为人,则选中一个框并点击提交。&#34;
所有这些都在条件语句中设置,以检查是否单击了提交按钮并使用每个的名称属性设置了复选框。
即:
<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.
}
}
?>
旁注:您还可以使用&&
(AND) logical operator检查复选框是否与上述内容相同。
示例:&& $_POST['checkbox_x'] == 'XX'
。
您还可以在堆栈上查看此Q&amp; A:
建议使用蜜柱和其他一些建议。
以下内容已从您删除的答案中删除。
参考:
&#34;您可以做的一件事是,将.htaccess设置为阻止BingPreview用户代理访问您的注册和密码重置路径(您的路径可能与此示例不同)::
RewriteEngine On
RewriteCond %{REQUEST_URI} /signup/confirm/ [OR]
RewriteCond %{REQUEST_URI} /resetting/reset/
RewriteCond %{HTTP_USER_AGENT} BingPreview
RewriteRule . - [F,L]
&#34;这将停止BingPreview抓取工具,但我觉得这是一个不完整的解决方案。您可以根据需要阻止尽可能多的讨厌的用户代理,但您是否真的想花时间寻找哪些电子邮件提供商在其电子邮件中提供类似的链接预览?&#34;