Are there any clean-up tools for Address Book data?

Solution 1:

Before you do anything, you can back up your Address Book database as an archive so you can restore it later if you make any edits that you don't like.

In Address Book, choose File: Export...: Address Book Archive... and save the archive.

Are you running Thunderbird 9 on Mac OS X? You can configure Thunderbird to read and write to the Mac OS X Address Book instead of using the Thunderbird address book. In other words when you open the Thunderbird Address Book and create or modify address book entries, it manipulates the Mac OS X Address Book's database.

enter image description here

In this way, could you use Thunderplunger in Thunderbird to clean up your Mac OS X Address Book?

I don't have an exact solution but I would like to tell you about one simple tool that might prove helpful.

AB2CSV

enables you to export all or part of your Mac OS X Address Book as a CSV (comma-separated value) file. You can import that into any spreadsheet or database program for further editing.

You can also use AB2CSV to export all or part of the Address Book database to one large VCF file.

Next, Apple Address Book can import a .CSV file or a VCF file that you have edited. In Address Book Help, there's a page for "Import contacts" that explains how to do it.

Solution 2:

To export contacts from OSX Contacts.app

Rather than install another program to do something that should have been developed into the contacts application to begin with, you can export all your contacts as a VCARD bundle.

Once you've got the VCARD bundle, you can import them into gmail which supports the VCARD format, and then export them from Gmail in whatever format you like, including CSV.

To check for invalid email

There are many programs that do this, but you should be sure to check what method they use to do it. Some programs will query the smtp server, others will send out test emails which could be considered spam.

You can also do this manually from terminal. I've only attempted it with gmail but you can likely modify it accordingly for any SMTP provider:

Using Terminal on OSX you can follow the following steps to connect to a remote SMTP email server and validate whether or not a specified email address is valid or not.

command

nslookup -type=mx gmail.com

response

Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
gmail.com    mail exchanger = 5 gmail-smtp-in.l.google.com.
gmail.com    mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.
gmail.com    mail exchanger = 20 alt2.gmail-smtp-in.l.google.com.
gmail.com    mail exchanger = 30 alt3.gmail-smtp-in.l.google.com.
gmail.com    mail exchanger = 40 alt4.gmail-smtp-in.l.google.com.

command

telnet gmail-smtp-in.l.google.com 25

response

Trying 74.125.193.27...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP d4si2280017icq.135 - gsmtp

command

HELO //alternately you can try ELHO

response

250 mx.google.com at your service

command

mail from:<wherever@make_something_up.com>

response

250 2.1.0 OK d4si2280017icq.135 - gsmtp

command

rcpt to:<[email protected]>

If the email address is valid you will get a response like this:

250 2.1.5 OK d4si2280017icq.135 - gsmtp

If the email address is invalid you will get a response like this:

550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 d4si2280017icq.135 - gsmtp

Obviously if you want to verify a whole bunch of emails you wouldn't want to do this manually for each one but you could easily convert it into a cron job with automator.

There is a shareware windows program that I found which does this and works rather well. I run it on a vmware partition of windows-7 on my computer.

It allows you to check batches of 500 for free, to do any more than that you have to buy the program

http://www.bulkverifier.com/