How to prevent Mail.app to update address book on its own

contactsmail.app

Now that the iCloud works (almost) flawlessly on both my MacBook Pro and iPhone I get annoyed by Mail.app on my Mac which seems to update contacts in my address book on its own, without my request or approval. I can't seem to find any setting to switch this behaviour off.

As clever as it may be (and it seems to be, as it does update correct contacts with valid information), I don't want it. Here's why… I prefer to keep some contacts in my address book with nicknames only. Since address book doesn't consider nickname as a name when sorting, contacts with no first/last name end up and the end of the address book as unnamed. What I do is I put the nickname as the first name. And that works flawlessly. But whenever I reply to an email from a person that exists in my address book as a first-name-is-nickname it updates the contact information with the last name based on the From/Reply-To header in the email.

How do I prevent this?

— edit —

No solutions here so far so I've posted the same question on Apple Communities.

Best Answer

I believe the solution to the problem is to prevent Mail.app from tracking Previous Recipients. To permanently disable this feature you have to use this terminal command:

defaults write com.apple.mail SuppressAddressHistory -bool true

Once you've done that, make sure you delete your Previous Recipients history. To do this, in Mail.app, open up Previous Recipients window (Windows > Previous Recipients), select all existing records present there and hit "Remove From List".

From now on, your Address Book will not get updated by Mail.app.

Note, that this will change the way address autocompletion works in Mail.app. From now on only addresses present in your Address Book (and optionally in LDAP if configured) will be auto-completed. Previous Recipients which are not present in your Address Book will not be auto-completed.

The whole problem seems to be quite unusual for Apple standards. A hidden and undocumented sync feature, with no obvious way to disable.