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

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

Related

Embedding Power BI dashboard in an email

I have developed a dashboard in Power BI that I would like to embed in an email body - Outlook, Gmail etc. Is this possible please and has anyone been successful at doing this?
No, embedding requires a lot of javascript code and a modern browser to work. Currently it is not possible to get this working in an e-mail body, because it will violate event basic security policies. Embed it in a web application hosted somewhere (or if the recipients has access to it, you can leave it in Power BI Service) and send and link to it (you can add an image if you want) in the e-mail.

How to read users outlook email using Oauth2?

I'm building a service which scans peoples email for specific PDF attachments and indexes them. I implemented this with OAuth2 for Gmail using their extensive Gmail API which works perfectly fine.
I now want to implement the same for outlook/live/hotmail. So I searched around, and I mainly read that you can "Connect to Outlook.com IMAP using OAuth 2.0" (tutorial here). The thing is that this implements a full IMAP connection. As far as I know this is more meant for aftermarket applications with which the user can view and send his email, not for applications which need to download some email in the background (like mine).
I haven't worked with IMAP from within code, but the main problems I see with this now is that:
If I read emails they will be set to "read" in the inbox of the user, which I obviously don't want (I don't want to interfere with the normal email usage of the user).
I will need to either stay connected with all email inboxes, or constantly loop through all email inboxes to get new emails.
My questions are actually;
Is there no other way than IMAP to get users outlook.com email?
Or are my problems actually not problems and should I just create an IMAP "receiver" for all the outlook email accounts?
In answer to point #1, according to Max, you can use body.peak to avoid this.
In answer to point #2, according to triplee, you can connect to all of the accounts and then use an IMAP extension called IDLE.
In answer to point #3, I found the Outlook REST API which includes options to read the email and you can call GET https://outlook.office.com/api/beta/me/messages on a regular basis to get all messages in the user's account or you can call GET https://outlook.office.com/api/v1.0/me/messages on a regular basis to get all messages in the user's inbox. You can find a full list of the REST APIs operations here.
In answer to point #4, I believe that some of your problems are problems and others aren't. I believe that you don't have any technical problems. However, I believe that you are correct that IMAP is not designed for applications like yours as is shown in the Wikipedia article on IMAP which reads (bold is mine),
In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by e-mail clients to retrieve e-mail messages from a mail server over a TCP/IP connection. IMAP is defined by RFC 3501.
Also, in RFC 3501 which defines the original IMAP protocol it refers to email clients which from the absract reads (bold is mine),
The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1) allows a client to access and manipulate electronic mail messages on a server.

Reading replies from outlook messenger using window service

I have a window service that reads the reply of mail and classify them based on the hidden fields into the replied email body. But while replying from outlook messenger or any other web servers other than the browsers, the hidden fields are not received into the email body of replied mail. I want the solution that why the hidden fields are not sent back to my email body while replying from outlook messenger or any other web email servers other than browser. Need help. Thanks in advance.
It is not clear what code you use at the moment in a service, but Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
If you are building a solution that runs in a server-side context, you should try to use components that have been made safe for unattended execution. Or, you should try to find alternatives that allow at least part of the code to run client-side. If you use an Office application from a server-side solution, the application will lack many of the necessary capabilities to run successfully. Additionally, you will be taking risks with the stability of your overall solution. Read more about that in the Considerations for server-side Automation of Office article.
You may consider using a low-level API on which Outlook is based - Extended MAPI or any other third-party wrappers around that API (for example, Redemption). In case if you deal only with Exchange servers consider using the EWS Managed API, EWS, and web services in Exchange.

Detecting email client of the recipients

We are planing to develop an extension for a software which will detect the email client software or interface of the recipients and report it.
In many forums this subject is told that is not possible but in this site they claim that they provide a reporting in a large scale.
http://www.adestra.com/email-client-detection-with-messagefocus/
I would be glad if someone could tell or show me a way to do it in any platform.
There are 2 situations here:
- detect the client email agent of the sender
- detect the client email agent of the receiver
The SMTP protocol does not define anything that would allow you to identify the client agent. So in theory you cannot guess it. Some clients will send some sort of identification in the header, though also this is not standard, and it can be fake. You can guess the client agent base on these identifiers though.
To find out the client agent of the receiver, you need to include content that will eventually connect to an http server. From there you can get the client agent (of the browser that opens it). So again, you have to do some guessing work. (ex. if it's yahoo.com and it is chrome .. then .. if it's ie then .. and so on.)
So to cut it short, there is not reliable way of finding out the client mail agents, it's more guessing and statistics.
The only way to do this is via the user-agent from a tracking image, you need the interaction via http. From there, you could determine, although not reliably, the email client in use.

automatic background email from iphone application to users

I am so confused. My simple requirement is: i have an application which contains confirmation form i.e. nib file. It contains some textFields like name, age, email etc. I simply want when somebody click on submit button application send background and automatic email to email defined in textField. that email contain all information like name, age etc. User need not to fil anything and it should work in background. There are so many application do the same thing. I am creating booking application.
So how can i impliment this behaviour.
Apple does not provide a way to do this - and for good reason. Sending emails from the phone automatically introduces a lot of security risks.
I am willing to bet that the apps that do this use an intermediary server to which they post the data. When the data is posted then the server handles the sending of the emails.
To do this:
Send an HTTPS POST request to your server application.
From your server application, send an email via SMTP (or APIs built on top of SMTP).
Google AppEngine provides a simple and cheap way to create such a web service, running on top of Google's cloud-computing infrastructure. The sending mail from AppEngine help document includes detailed examples of how to send mail from your server application (assuming you use the Python version of Google AppEngine).
Unfortunately, there is no official feature for this but you could download a third-party library. Refer here for a couple of suggestions.