It seems that Outlook.com uses the BingPreview crawler to crawl links in emails.
But the one-time links are marked as used/expired after opening the email and before the user gets the chance to use them.
I try to add a rel="nofollow" in the <a>
but without success.
How can I block the crawler for each links in email ?
Thanks
I did the same.
$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);
}
I've seen the same issue. The links in emails opened in outlook seem to be crawled immediately by the 'BingPreview' bot.
I've added a robots meta tag to the header in the HTML email.
I've also added a check for standard bot signatures appearing in the user-agent header in the link handling script. If it looks like a bot then I'm exiting and not invalidating the link.
Can't say for sure that this is working yet (only just made the changes).
来源:https://stackoverflow.com/questions/41699071/bingpreview-invalidates-one-time-links-in-email