When you send an email to someone, normally you have no idea whether he/she receive it or not. When he/she receive it, you have no control what he/she is going to do with it. Just like you are sending a regular mail. You give it to postman; That is all.
However, many email marketer found it very useful if we can know who open our email and at what time. There is an official way of knowing who open your email. It is to ask receivers to send a read receipt. This is done by adding an extra header field to email message. Many email clients support this function. However, not so many people would like to send a receipt back and it is annoying people a little bit to ask them for a receipt.
So what marketers want is a way to track opening without receivers noticing it.
In technique, this is possible because many email messages are sent in the format of HTML.
In the HTML source code of email message, we can add additional 1px white image at the end of source code. When email clients such as Ms Outlook receive that message, email clients will do a request to the server for that image file. On the server side, we can then add code to log the request.
For example, we can add below code to the end of an email message.
<img src="http://mailing.mysite.nl/img.aspx?c=13&e=14548">
An image file must start with <img> tag with a src attribute. However the file name of that image does not have to be an image like file name such as .gif or .jpg. It can be of anything. On img.aspx page we can add code to log IP and value on query string. After logging, server can response with an image file to email clients.
In this way, we have our open detection function.
Open detection is not very reliable because it only works with HTML email message and some people block image loading on their email client.