Email validation link sent to users on outlook expire due to msnbot - email

I have created an web app where users have to first register and confirm their email address by clicking a link that contains a validation code;
I recently discovered that users using outlook are getting code expired or does not exist whenever they want to validate their email address.
After an hour of debugging, I have found out that an MSN bot is accessing the validation link right before delivering the email, rendering it expired. I know that that does validate the email as I have noticed that the bot does not visit the page if the account does not exist, but it does not help if the wrong person gets the email or in terms of user experience;
I would like to know if anybody familiar with this problem can give an advice on how to manage it.
This is what I could read from the bot using php. I could try to not validate the email address if host contains msnbot or search.msn.com but i do not know how reliable this solution would be as I do not know if the bot will always return any of those.
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b
IP: 40.77.167.67
Hostname by address: msnbot-40-77-167-67.search.msn.com

Instead of counting the link hit, direct the user to a page that explicitly requires the user to click a button.

Related

How to track on which email client the mail has been opened via google analytics?

I tried and searched a lot to track email client but i am getting to use other bananatag or mailchimp tool. I dont want to use other tools. i only want to track which email client is being used or on which email client the mail has been opened.
I tried capturing via HTTP_USER_AGENT but did not get only got the browser information. Used document.referrer too but it returned "" .
How do mailchimp , banantag and other campaign tools figure out the mail client?
Every email client will send a user agent string, but Google Analytics is optimized for web browser hits. The email tracking vendors have accumulated the user-agent signatures of the most common email clients and do the mapping for you. (See for instance Udger Email Client List.)
The GA interface does not give you direct access to the user-agent strings of your hits, so you can't implement this mapping yourself.
One can hope that as more clients use the GA measurement protocol for email tracking the GA team will see the need to provide alternative mappings. When you know your hits are coming from email clients, it makes very little sense to map to web browsers.
As an particularly insidious example, Google's own GMail product identifies itself with this user-agent string:
mozilla/5.0 (windows nt 5.1; rv:11.0) gecko firefox/11.0 (via ggpht.com googleimageproxy)
Which ends up making it look like your hits came from Firefox v. 11 running on Windows NT, according to the canonical GA mapping. :P
You can't track this information with Google Analytics. You'll have to survey your users and use statistical analysis to determine which e-mail client(S) they use.
You can track offsite activities with Google Analytics Measurement Protocol. So you can fool your email template to include a blank image that sends out a hit to Google Analytics on each open of the email.
<img src="https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXX-Y&cid=*|UNIQID|*&t=event&ec=email&ea=open&el=*|UNIQID|*&cs=email&cm=email&cn=*|CAMPAIGN_UID|*&cm1=1" />
(example from a Mailchimp newsletter template)
Then you can select as a dimension in your event reports the Browser/Browser version and have a look at them
This is based on this article from Lunametrics

Quickblox, send email to new users to validate email address

I'm new to quickblox MBaas and I would like to send out an email (to verify e-mail address) to a specific user when he signed up. Is there a standard procedure for this or a way to do this in Quickblox. Many thanks for your help.
There is no a way to do this for API users right now.
The cause of this solution is that it's quite hard sometimes for mobile users to verify an email. Just imagine a situation where user doesn't have a ready for use mail client on his device - then there is no a way to verify an email in this situation.
Other cause is that email verification can complicate your onboarding process.
It's possible to send a greetings email. You can setup it in Admin panel, Users module, Settings tab

CakePHP problems with Yahoo, Hotmail and YopMail referals

Here's one of the most strangest problems i've ever seen in my life as developer:
I have a website running CakePHP (lastest version, always) and when I send an email to someone (using Yahoo, Hotmail or YopMail), let's say a "remember my password" message, the CakePHP don't work properly.
What should happend: user acess the website using the link sent via email, internal process (generating the new password and sending it via email to the user), redirect the user to the homepage with a message "Your new password was sent by email".
The problem is that when the user clicks the link he's redirected to the homepage without any session variables... And there's no generated email!
But if I send the SAME link to someone using gMail it works like a charm.
Do you have any clue about where I should start?
It was some problem with the security level... I lowered it to "low" and it worked.
If it works in GMAIL, but not in YAHOO, then it sounds like yahoo is filtering your message. It's possible your wording triggers their spam or exploit filter. Just as a test, try sending the same link as an image link instead of using text. see if that works for yahoo.

Email client detection

I have a project to send some email to end clients. My client need to know what exactly "Email Client" they use to read the mail. I know a hidden can get the open event and even the user agent they use, so by parsing user agent i can get most email clients info.
But it's hard to detect some popular web mail clients like "Gmail", "Hotmail" and "Yahoo mail". Because user agent return is only the browser user agent string.
Edit: i think i need a result more like this:
here
You will not be able to perfectly detect the e-mail client your users are using.
In E-Mail headers some programs choose to include the X-Mailer tag, which tells you exactly with what program and version your user is sending the e-mail - of course that can be faked. Not all programs use the X-Mailer tag, I e.g. couldn't find it in a mail sent with Microsoft Outlook 2010.
Besides that you could do some guesswork by the Received from tag in the e-mail headers, but in the end you can use SMTP and POP3 with most webmailers like GMail or Yahoo. That means even though your e-mail is sent via servers from google.com, the originating client could still be Outlook or Thunderbird and not GMail itself.
Maybe we can help you if you better if you could tell us why exactly your client wants to know the programs the users use to read their mail? Probably to tune the appearance of newsletters?
I know this is a really old topic, but the most reliable way to detect webmail client for gmail, hotmail, outlook.com and office365 is to use a tracking pixel. What you will want to do is geo-locate the IP address and you'll find gmail all comes from mountain-view and microsoft based products from redmond.
I haven't validated this with non-US users, but I'd imagine the caching services they use will all be in the same place.
Cheers

Facebook proxy email not arriving -- do I need permissions?

I'm building a website that allows user to connect using Facebook Connect. So far I'm able to log the user in and fetch data about them (name, email, pic, etc.). If I fetch the email (using Users.getInfo) I get a proxied email (apps+blahblah#facebook.com), which is absolutely great. Problem is, that email doesn't work. I've tried sending an email to it and I never received it. There are two reasons I see that could cause this:
I don't have enough permissions. Ok, I can understand that, but if I don't have enough permissions then why are they returning an email at all?
The email has to be somehow sent from the application itself (I've tried sending it from my Gmail account) -- but how would Facebook know that the email is coming from the application?
So which is it? Or is it something else?
I have recently been looking into this as well.
I did find some guidelines on http://www.insidefacebook.com/2010/01/15/facebook-platform-email-sharing-api-proxy-email-service-going-live-in-5-days/
here is the most important part:
Emails you send must clearly indicate that they are from you and must not appear to be from Facebook or anyone else. For example, you must not include Facebook logos or brand assets in your emails, and you must not mention Facebook in the subject line, “from” line, or body header. All emails to users must originate from the same domain, and you must provide us with the name of that domain in the Facebook Developer application used to manage your application.
I have already found that if you do not have the address in the from as #facebookappmail.com
might even have to be appname#facebookappmail.com the emails will bounce. So sending from your gmail will not work, the "blah blah blah" in the proxy contains the application information of the application that had the permissions to get that email.