What values for email "delivery-status" exist?

Posted on 2009-04-27
Last Modified: 2012-08-13
I'm creating a C# console app that will get emails from an Exchange mailbox, check to see if they are 'bounce back' emails and if so filter them as either 'hard errors' (where the delivery-type action is 'failed') or 'soft errors' (where the action is 'delayed'). Any emails not caught by this (such as 'unsubscribe') are then forwarded to a distribution list so various employees in my company can read those emails and take manual action as required.

My question is: what other types of delivery-status are there? 'Failed' is an obvious one I will work with (by locating and removing their record in my database, which is used to create recipient lists), and 'Delayed' is an action I can simply ignore for the most part.

What other actions are there that could be caught prior to forwarding on emails that need human interaction? Is there a list somewhere? Obviously I tried Google first, and then searched here, but no joy.
Question by:QMKevin
    LVL 14

    Expert Comment

    by:Erik Pitti
    I refer back to the SMTP protocol documents:

    Mail System Status Codes

    The first digit is the overall success or failure of message delivery.
    2.X.X   Success
    4.X.X   Persistent Transient Failure (soft-fail)
    5.X.X   Permanent Failure (hard-fail)

    The second gives the general reason why a message has failed delivery
    X.0.X   Other or Undefined Status
    X.1.X   Addressing Status
    X.2.X   Mailbox Status
    X.3.X   Mail System Status
    X.4.X   Network and Routing Status
    X.5.X   Mail Delivery Protocol Status
    X.6.X   Message Content or Media Status
    X.7.X   Security or Policy Status

    The third gives specific reasons why the message failed.

    5.2.2   Mailbox full

    LVL 14

    Accepted Solution

    If you're looking for Exchange-specific delivery status codes, you can find those here:

    Delivery status notifications in Exchange Server and in Small Business Server

    Author Closing Comment

    While I was specifically looking for values of "Action" I was able to adapt my code to use extract the status code from my email object instead, making this posts hyperlink the most useful for what I need. I can now identify 'soft' errors vs. 'hard' errors by their status code.


    Featured Post

    What Security Threats Are You Missing?

    Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

    Join & Write a Comment

    Granting full access permission allows users to access mailboxes present in their database. By giving full access permission one can open and read the content of any mailbox but cannot send emails from that mailbox.
    Use these top 10 tips to master the art of email signature design. Create an email signature design that will easily wow recipients, promote your brand and highlight your professionalism.
    To show how to create a transport rule 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 Mail Flow >> Rules tab.:  To cr…
    The video tutorial explains the basics of the Exchange server Database Availability groups. The components of this video include: 1. Automatic Failover 2. Failover Clustering 3. Active Manager

    734 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

    19 Experts available now in Live!

    Get 1:1 Help Now