Outlook.com似乎使用BingPreview抓取工具抓取电子邮件中的链接。
但是在打开电子邮件之后以及在用户有机会使用它们之前,一次性链接被标记为已使用/已过期。
我尝试在<a>
中添加rel =“nofollow”,但没有成功。
如何阻止电子邮件中每个链接的抓取工具?
由于
答案 0 :(得分:5)
我做了同样的事情。
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
// Deny access for the BingPreview bot, used by outlook.com on links in e-mails ad Slackbot
if (strpos($user_agent, 'BingPreview') !== false || strpos($user_agent, 'Slackbot') !== false) {
header('Status: 403 Forbiden', true, 403);
exit(1);
}
答案 1 :(得分:1)
我刚刚遇到了相同的问题,在用户收到确认链接并使其无效之前,已在发送的电子邮件中执行确认链接。 我通过修改URL链接到的页面来解决此问题。我在页面上添加了一个“确认”按钮,用户必须单击该按钮以确认其电子邮件,这很好用。
答案 2 :(得分:1)
这里也一样。我们使用了一个程序块来禁止BingPreview和Slackbot,并使用服务器脚本语言(lucee / coldfusion和application.cfc)来访问链接。
答案 3 :(得分:0)
我见过同样的问题。在outlook中打开的电子邮件中的链接似乎被“BingPreview”机器人立即抓取。
我在HTML电子邮件的标题中添加了漫游器元标记。
我还添加了对链接处理脚本中user-agent标头中出现的标准bot签名的检查。如果它看起来像机器人,那么我正在退出并且不会使链接无效。
不能确定这是否有效(只是做了改动)。