5t34lth_G33k
asked on
Automatically add to contacts from a list of emails
Hi
I have been requested to find a way to automatically add to contacts a separate contact for each email address in a huge inbox of well over 10000 items. I can see a script that automatically adds addresses when you reply, but this isnt feasible as we would have to reply to each and every email that needs to be added. Is there a script that can scan an inbox for unique addresses and create a contact for each one?
Many thanks
I have been requested to find a way to automatically add to contacts a separate contact for each email address in a huge inbox of well over 10000 items. I can see a script that automatically adds addresses when you reply, but this isnt feasible as we would have to reply to each and every email that needs to be added. Is there a script that can scan an inbox for unique addresses and create a contact for each one?
Many thanks
Yes, this is possible, but there is an issue you should be aware of. Accessing any field that can contain an email address in any Outlook item is going to trigger a pop up warning that an application is accessing your mailbox and asking for permission to allow it to continue. You can then grant the application permission for a fixed amount of time. Beyond that, this is actually fairly simple. One additional question, how do you plan to fill in the rest of the contact's details? This is only going to produce a contact with an email address. If you want to proceed, then I can put the script together before the end of the day.
ASKER
That would be great, thanks. Can the first name and surname fields be populated by the name that preceeds the email address sometimes? Such as:
'John Smith[john.smith@company.c om]'
If not, dont worry - just getting the email address should be good enough - the user can then manually add telephone numbers etc
'John Smith[john.smith@company.c
If not, dont worry - just getting the email address should be good enough - the user can then manually add telephone numbers etc
Sorry, long day and I just saw your response. I'll get to work on this in the morning.
Here's the code for doing this. Follow these instructions to use it.
1. Open Outlook.
2. Click Tools->Macro->Visual Basic Editor. You should now be looking at the code editor.
3. If not already expanded, expand Modules.
4. Click on Module1.
5. Copy the code below and paste it into the right-hand window.
6. Click the diskette icon on the toolbar to save the changes we just made.
7. Click Tools->Macro->Security
8. Set the security level to Medium.
9. Click on a folder that contains emails.
10. Run the macro (Tools->Macro->Macros, select AutoAddContact, and click Run).
The macro will process every message in the folder adding a new contact to your default contacts folder for each the sender of each message. If the message included a sender name, then that name will be added to the contact along with the sender's email address. Otherwise, the email address will be used for the contact's name.
Sub AutoAddContact()
Dim olkContacts As MAPIFolder, _
olkContact As ContactItem, _
olkItem As Object, _
olkReply As MailItem, _
olkRecip As Recipient
Set olkContacts = Application.Session.GetDef aultFolder (olFolderC ontacts)
For Each olkItem In Application.ActiveExplorer .CurrentFo lder.Items
Set olkContact = Application.CreateItem(olC ontactItem )
Set olkReply = olkItem.Reply
Set olkRecip = olkReply.Recipients.Item(1 )
With olkContact
.Email1Address = olkRecip.Address
.FullName = olkItem.SenderName
.Save
End With
Next
Set olkContact = Nothing
Set olkContacts = Nothing
Set olkItem = Nothing
Set olkReply = Nothing
Set olkRecip = Nothing
End Sub
1. Open Outlook.
2. Click Tools->Macro->Visual Basic Editor. You should now be looking at the code editor.
3. If not already expanded, expand Modules.
4. Click on Module1.
5. Copy the code below and paste it into the right-hand window.
6. Click the diskette icon on the toolbar to save the changes we just made.
7. Click Tools->Macro->Security
8. Set the security level to Medium.
9. Click on a folder that contains emails.
10. Run the macro (Tools->Macro->Macros, select AutoAddContact, and click Run).
The macro will process every message in the folder adding a new contact to your default contacts folder for each the sender of each message. If the message included a sender name, then that name will be added to the contact along with the sender's email address. Otherwise, the email address will be used for the contact's name.
Sub AutoAddContact()
Dim olkContacts As MAPIFolder, _
olkContact As ContactItem, _
olkItem As Object, _
olkReply As MailItem, _
olkRecip As Recipient
Set olkContacts = Application.Session.GetDef
For Each olkItem In Application.ActiveExplorer
Set olkContact = Application.CreateItem(olC
Set olkReply = olkItem.Reply
Set olkRecip = olkReply.Recipients.Item(1
With olkContact
.Email1Address = olkRecip.Address
.FullName = olkItem.SenderName
.Save
End With
Next
Set olkContact = Nothing
Set olkContacts = Nothing
Set olkItem = Nothing
Set olkReply = Nothing
Set olkRecip = Nothing
End Sub
ASKER
thanks for the code, but it seems to be adding duplicate contacts - is there a way to stop that?
Thanks!
Thanks!
Sure. I'll post a revised version shortly.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.