Solved

Processing undeliverable emails/dead email addresses

Posted on 2011-09-10
4
795 Views
Last Modified: 2012-11-16
Sending bulk email (subscriber base of over 100,000 recipients) using SQL Stored Procedures through Exchange 2007 and Exchange 2003. How is it possible to parse undeliverable messages/NDRs in order to strip out the original recipient address and automatically flag it in the original SQL record so that no further emails are sent to that address?

I've previously read about Exchange event sinks and intercepting the inbound NDR to strip out the email address and process it, however I'm wondering if this is the best solution or if anyone has ideas of how else to achieve this.
0
Comment
Question by:drl1
  • 2
  • 2
4 Comments
 
LVL 12

Expert Comment

by:FarWest
ID: 36516110
you can do that by making a c# using the event sink, by registering it to Exchange web services and be notified when new email comes and check its type,
but since it is like "house keeping" job, and I don't think that you need realtime to this type of maintinance operations, what you can do is to access the Inbox of the account the will receive the NDR, and process whatever emails in it, you can use even vbscript and put it in the the server tasks
check this page as startup, this example to move rhe messages, and you need it so when you finished the prcessed emails it better to move them in some kind of history
Code:Sub MoveToHistorikk()

Dim objNameSpace As Outlook.NameSpace
Dim oexpSource As Outlook.Explorer
Dim objInboxItems As Object
Dim objMailboxName As Outlook.MAPIFolder
Dim cmMailBoxName As String
   
    'Name of secondary mailbox
    cmMailBoxName = "Postboks - Van Maskinalarm"
   
    'All mailboxes are children of this folder
    Set objoutlook = CreateObject("Outlook.Application")
    Set objNameSpace = objoutlook.GetNamespace("MAPI")
         
    'Get the secondary mailbox
    Set objMailboxName = objNameSpace.Folders(cmMailBoxName)
    Set objInboxItems = objMailboxName.Items
   
    Set objDestinationFolder = objMailboxName.Folders("Historikk")
    Set oexpSource = Application.ActiveExplorer
   
    ' Move selection to Historikk
    For Each objInboxItems In oexpSource.Selection
      If TypeOf objInboxItems Is Outlook.MailItem Then
        objInboxItems.Move objDestinationFolder
      End If
    Next
   
    'Cleaning
    Set objNameSpace = Nothing
    Set objInboxItems = Nothing
    Set objMailboxName = Nothing
    Set objDestinationFolder = Nothing
    Set oexpSource = Nothing
End Sub

http://www.bigresource.com/VB-Moving-an-E-mail-from-inbox-to-another-folder-for-secondary-mail-account-75Gceh4hpI.html
 
0
 

Author Comment

by:drl1
ID: 36516123
Thanks for that. It does actually need to be close to real-time as we may send more than one email per day to certain subscribers, so if the 1st one bounces, we should avoid sending the 2nd and any subsequent emails.

Can you provide an example of event sink code?
0
 
LVL 12

Accepted Solution

by:
FarWest earned 500 total points
ID: 36516151
ok,
it is called the notification services, so your code will be notified when any new messages arrived  and you can process the new messages, I have used that in my code as windows services and it works fine, but sometimes the link is broken and you have to restrat the services, since exchange has a machanizm that if the client did not response for the notification for certin time it will disconnect and do not send any notification,
also you have to take care of the firewall on the machine that runs the service so it will  allow incoming calles on that port "using netsh"

http://msdn.microsoft.com/en-us/library/bb204063(v=exchg.80).aspx

good luck
0
 

Author Comment

by:drl1
ID: 36516166
Thanks, I'll give this a try when I find some time over the next week or so.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Exchange server is not supported in any cloud-hosted platform (other than Azure with Azure Premium Storage).
Follow this checklist to learn more about the 15 things you should never include in an email signature from personal quotes, animated gifs and out-of-date marketing content.
In this video we show how to create a Distribution Group in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >>…
In this Micro Video tutorial you will learn the basics about Database Availability Groups and How to configure one using a live Exchange Server Environment. The video tutorial explains the basics of the Exchange server Database Availability grou…

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now