26

I'm beginning to work on mailing-list software we use internally (EDIT: though we send emails externally as well, so we can't enforce policy on mail clients). Is there any way to track whether, when I send an email to a particular user, that email has been opened as opposed to being marked as junk or being deleted without being opened?

The simplest approach that I thought of was to serve a one-pixel custom image that would need to be loaded from our servers, but a number of mail clients block this approach. Is there an alternate approach that gets better data?

AlexeyMK
  • 6,245
  • 9
  • 36
  • 41
  • 1
    This is a problem which has already run its full course - people wanted to track such things, so they started adding images, but there is no way to distinguish between legitimate and malicious tracking, so mail reader developers learned to block them. – Rex M May 05 '09 at 01:09
  • possible duplicate of [Mass email tracking](http://stackoverflow.com/questions/1219590/mass-email-tracking) – John Apr 20 '12 at 13:35
  • Quick notes to whoever will be using this later: If you want a simple approach and don't mind paying a bit, check out www.didtheyreadit.com and www.readnotify.com; these abstract away a lot of any implementation you'll have to deal with. – AlexeyMK May 05 '09 at 01:25
  • I just found this awesome comment on a blog post discussing didtheyreadit.com: "I had a friend who quit replying to messages I sent using the tracker. He told me there was no need for him to respond since I know he got the message. So I stopped using it." – Steve Jessop May 05 '09 at 01:36
  • That service just uses the embedded image trick, which has been well-established from many answers here to not actually work very well. Your recipient must explicitly opt to view images from the sender. – Rex M May 05 '09 at 02:17
  • There are definitely deficiencies in the 'show an image' approach; but if that's the approach you're going for, these services should at least be considered. – AlexeyMK May 05 '09 at 17:18

10 Answers10

20

Mail clients block pretty much all of these kinds of attempts. The best idea is to give them an image that they would want to see if they read the message, and therefore they choose to display images in their mail client.

Lou Franco
  • 87,846
  • 14
  • 132
  • 192
  • 3
    Just as an added note, this kind of stuff is (was?) common in spam to verify whether email addresses were still valid, and so this is why most mail clients will refuse to automatically load remote images in emails. – bdonlan May 05 '09 at 01:42
  • now onwards images are also get block, what's the other idea to track? –  Feb 19 '14 at 06:26
  • 3
    Write an interesting email that makes them want to click links. – Lou Franco Mar 04 '14 at 15:18
14

There is no bulletproof way to check if a user has read your mail. And there shouldn't be IMO.

Ólafur Waage
  • 68,817
  • 22
  • 142
  • 198
10

I have been looking for an answer to this question for a few weeks now and found several options out there. The one I like will send the 'open' data to Google Analytics.

The image below should be inserted into the body of your email. Each person I send an email to has a unique customer number so i can see opens/unique opens but it must not identify a specific customer according to Google's terms.

            <img src="http://www.google-analytics.com/collect?v=1
                &tid=UA-12345678-1
                &cid=12345
                &t=event
                &ec=email
                &ea=open
                &el=recipient_id
                &cs=newsletter
                &cm=email
                &cn=Campaign_Name
                " />
tylerlindell
  • 1,545
  • 2
  • 17
  • 20
  • 2
    Does this work in gmail? I know Google now downloads resources (images) from an email and serves those when a user views the email, so this completely removes the ability to track email views using an img element. – Sam Jun 02 '15 at 23:57
  • I have not tested this in a while but last time I did, google was downloading the resources before serving them to the user. This was not creating issues for me. I believe they are doing a lazy load for the resources. If they were not, ALL of my gmail subscribers would have shown up as if my email to them had been "opened". They did not show up that way. (Keep in mind, sending images to users for "open" validation is not a perfect test. It will, however, give you a rough idea of how many times your emails where opened. – tylerlindell Jun 03 '15 at 17:48
3

You can ask for a read receipt (an email feature), but most users consider this a real pain.

JonnyBoats
  • 5,177
  • 1
  • 36
  • 60
1

For python, you can use this package. By using this package, you can track open and click mail.

Farid Chowdhury
  • 2,766
  • 1
  • 26
  • 21
1

Add a transparent gif to the email. When your users will display the image, it will query your server and adds a line to your document. It is aka render rate. This is what email marketers used to call "open rate".

You can use MxM (http://www.m--x--m.net) to deliver your emails. They add that automatically and manage deliverability and antispam for you. We have open sourced that piece of code but it is in Python.

(disclosure, I am the founder of this company)

0

The only way of tracking whether users read (downloaded) your email is by putting the information not in the email but in something like an image or an external html page and only have your email link to said resource (either through external browser or enabling images in email client).

Pieter B
  • 1,874
  • 10
  • 22
0

You might be able to meet your needs by redistributing the content. Design the email in such a way that users who care about your email will click a certain link to learn more / continue reading. In other words, I advocating avoiding this problem because there isn't a solid solution.

celwell
  • 1,634
  • 3
  • 19
  • 27
0

If this is internal I assume you own the IMAP server (or Exchange or what-else-have-you). It'd be kind of ugly, but that would be the "proper" way to know if the email client has at least displayed the message. You can't really guarantee that it's been read of course :-p

Jeremy Huiskamp
  • 5,186
  • 5
  • 26
  • 19
0

You could potentially send out the mail with "read receipts" requested and then enforce the policy that all mail clients automatically send notices upon opening.

Cuga
  • 17,668
  • 31
  • 111
  • 166