Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何阻止电子邮件客户端自动访问电子邮件中的链接?_Php_Email_Bing - Fatal编程技术网

Php 如何阻止电子邮件客户端自动访问电子邮件中的链接?

Php 如何阻止电子邮件客户端自动访问电子邮件中的链接?,php,email,bing,Php,Email,Bing,我有一个PHP脚本,可以发送纯文本电子邮件,其中包含指向确认和协议等特定操作的链接 我注意到,Outlook的Web版本将自动检测链接,并在用户单击链接之前在后台访问该链接。我注意到了这一点,因为我一打开电子邮件,数据库中的内容就会发生变化。 同时检查Apache访问日志,我看到BingPreview/1.0b作为用户代理 这是非常糟糕的,因为用户可能不想执行这些操作 是否可以发送电子邮件头来禁用此行为?建议?正如我在评论中所写: “您可以使用某种形式的输入按钮和复选框,这些都是在条件语句中设置

我有一个PHP脚本,可以发送纯文本电子邮件,其中包含指向确认和协议等特定操作的链接

我注意到,Outlook的Web版本将自动检测链接,并在用户单击链接之前在后台访问该链接。我注意到了这一点,因为我一打开电子邮件,数据库中的内容就会发生变化。 同时检查Apache访问日志,我看到BingPreview/1.0b作为用户代理

这是非常糟糕的,因为用户可能不想执行这些操作


是否可以发送电子邮件头来禁用此行为?建议?

正如我在评论中所写:


“您可以使用某种形式的输入按钮和复选框,这些都是在条件语句中设置的。这些按钮和复选框在物理上无法单击/选中。”

旁注更正:我犯了一个轻微的语法错误。这应该是:


“您可以使用某种形式的输入按钮和复选框,这些都是在条件语句中设置的。这些按钮和复选框实际上不能被单击/选中,必须由真实的人亲自完成。”

甚至谷歌也建议使用复选框

在“认购”项下:

通过手动选中web窗体或软件中的框

“在web窗体或软件中设置复选框,默认情况下订阅所有用户(要求用户明确选择不发送邮件)。”

此外,您可以使用reCAPTCHA:

这是另一篇关于谷歌和复选框的文章;即使是“垃圾邮件相关”,同样的逻辑也适用:

摘自那篇文章:

谷歌本周推出了一个更好的解决方案:“无验证码重述”,我们称之为“复选框和小猫”

“就是这样。复选框。“我不是机器人。”虽然谷歌没有详细介绍盒子背后的魔力,但谷歌表示,“风险分析引擎”衡量用户如何与页面和验证码交互,以判断是否需要一个简单的复选框。如果检测到您是人类,请选中一个框并单击“提交”

所有这些都在条件语句中设置,以检查是否单击了提交按钮并设置了复选框,并使用每个按钮的名称属性

即:


“这将停止BingPreview爬虫程序,但我觉得这是一个不完整的解决方案。你可以在这里屏蔽任意多个恼人的用户代理,但你真的想把所有的时间都花在搜索哪些电子邮件提供商在他们的电子邮件中提供类似的链接预览上吗?“

您可以使用某种形式的输入按钮和复选框,这些都是在条件语句中设置的。这些不能被点击/检查。你无法控制Outlook如何处理电子邮件中包含的链接,你只能阻止Bing的机器人,仅此而已。@PedroLobito显然我无法控制它。如果我这样做了,我就不会有任何问题了。@Therelchx101很抱歉看到有人投票删除你的答案;你还想得到这个问题的答案吗?我发表了评论,但你没有回复。除非是你投了更高的票。我可以提供一个更“oomf”一点的答案——)@弗雷德二世-当然可以。是的,是我对你的评论投了赞成票。谢谢。re/CAPTCHA选项听起来更好。我相信这个答案将来会有帮助的。欢迎@TheRealChx101回答这个问题,干杯
<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.

        }


    }
?>
RewriteEngine On
RewriteCond %{REQUEST_URI} /signup/confirm/ [OR]
RewriteCond %{REQUEST_URI} /resetting/reset/ 
RewriteCond %{HTTP_USER_AGENT} BingPreview
RewriteRule . - [F,L]