The SMTP Simulator project has been started due to a specific demand during a customer project. We needed a solution to test native transport of Exchange Server 2013 and third party addons to Exchange in an isolated lab envrionment having no internet access at all.
While it is pretty easy to send test emails using PowerShell, we wanted to create an automated service which is capable of:
The SMTP Simulator can be used with any Message Transfer Agents (MTA), not only with Exchange. Besides testing the MTA itself, we needed to test some of the following third-party solutions:
The Visual Studio solution creates a MSI installer file. The MSI package created installs the SMTP Service itself, but not the required web application (see issue #49).
Documentation is provided by the SMTP Simulator Wiki.
The code has been published as open source at Github. Feel free to fork the solution and contribute to the code.
Report any issues or feature requests at Github.
The project still has some open ends and needs some love and attention. Open issues are part of the issue tracker at Github.
Main topics are:
Exchange and other MTAs use DSNs (Delivery Status Notifications) and NDRs (Non Delivery Reports) to notify the sender or sending MTAs (Message Transfer Agents aka Mail Servers) about the varioius statuses of a given email message. In Exchange those messages are generated primarily by the categorizer component of the transport service.
You can use the New-SystemMessage cmdlet to create new messages. These messages can even be localized and can contain Html tags for properly styled notifications.
From a system perspective the various notifications used are named and fulfill a specific purpose.
Report and receipt types (Exchange Version independent) used for notification
Report confirming that a message was delivered to its intended recipient
Delivery Status Notification (DSN)
Report describing the result of an attempt to deliver a message
Message disposition Notification (MDN)
Report describing the status of a message after it has been successfully delivered to a recipient. Examples: read notification (RN) or non-read notification (NRN)
Defined by RFC 2298 and controlled by Disposition-Notification-To header
Non-Delivery Report (NDR)
Report indicating to the message sender that the message could not be delivered to the intended recipients
Non-Read Notification (NR)
Report indicating that a message was deleted before is was read, when a read receipt was requested
Out Of Office/Facility (OOF)
Report indicating that the recipient will not respond to a new message
OF referes to the Microsoft original term „out of facility“
Read Notification (NR)
Report indicating that a message was read
Report indicating the status of a recall request for a specific recispient
A recall request is used when a sender tries to recall a sent message by using Outlook
This post has first been published in my personal legacy blog here.