Android sends read receipts automatically

I was surprised recently when someone responded to a read-receipt showing when I had read one of their messages. Like many others, I turned off Outlook’s option to send read receipts automatically many years ago. Since I had just changed Exchange 2010 mail providers, I assumed that I had missed this option and simply needed to re-check it on my two computers that use Outlook.

I was wrong. After checking both Outlook installations, the option never to send read receipts was still selected. Turns out my Android phone (running Gingerbread) sent the read receipt, and there’s no option to turn this off in the default mail client.

I never send read receipts because I do customer-facing email and I don’t necessarily want customers to know when I am reading emails, particularly if I want to take some time to craft a well-written response to their inquiry. They could misinterpret the delay as lack of attention to their issue, when in fact just the opposite may be true.

I ran some tests on this, and things don’t appear as bad as they seem. Android’s mail client does not appear to send the read receipt the moment you read the message – it actually sends it along with your reply, and it appears (with my limited testing) that the read receipt actually shows the “read” time to be the same as the reply time, not the actual read time. In other words, I sent myself an email at 3:01pm, read it on my Android phone at 3:02pm, and replied using my Android phone at 3:09pm. The read receipt that came back to the originating email address showed that the message was read at 3:09pm instead of 3:02pm (the latter being the first time I actually opened and read the message).

Even so, I don’t like mail clients sending anything without my approval. For some corporate Exchange users, you might be able to have your Exchange administrator block read receipts, but it is probably a server-wide setting, so don’t be surprised if you encounter some organizational push-back, or at least a lengthy discussion about it first.

In my case, I happen to route all my mail through a primary server that runs Exim first, before passing it along to my main Exchange server and a backup server. So I added the following line to my /etc/exim.conf:

headers_remove = Disposition-Notification-To : Return-Receipt-To

I added that line to my “virtual_aliases_nostar:” director, right below the first line (“driver = redirect”).

Then don’t forget to restart Exim.

I know this isn’t the very best place for it, because it doesn’t work 100% yet, but it’s a start. What happens is that senders still get delivery reports, but read receipts are no longer sent by my Android phone even when I reply. Looking at the message headers, the Disposition-Notification-To: header and Return-Receipt-To: header are no longer present in messages I receive when the line above is present in my exim.conf file. Ideally the line would be placed in a location that would immediately strip those header lines and prevent both delivery reports and read receipts, but as I mentioned I don’t mind someone knowing that their message made it to my server OK.

Since my server is running cPanel, I’ve done the ultimate evil by editing exim.conf directly in the shell; I will need to figure out how to get this line into the cPanel configuration editor and I’ll post back when I do so.


in cPanel, you can copy /etc/cpanel_exim_system_filter to a new file (I called mine /etc/MYDOMAIN_exim_system_filter where MYDOMAIN is my actual main domain name), then add the following to that file:

headers remove "Disposition-Notification-To"
headers remove "Return-Receipt-To"

This will remove the headers and not be overwritten with cPanel updates (if you leave the default cPanel filters file in place it does overwrite, so be sure to work on a copy).