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 various 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.
Delivery Status Notification (DSN)
A report describing the result of an attempt to deliver a message
Message Disposition Notification (MDN)
A 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)
A report indicating to the message sender that the message could not be delivered to the intended recipients
Non-Read Notification (NRN)
A report indicating that a message was deleted before it was read when a read receipt was requested
Out Of Office/Facility (OOF)
A report indicating that the recipient will not respond to a new message
OOF refers to the Microsoft original term „out of facility“
Read Notification (RN)
A report indicating that a message was read
Recall Report (RR)
A report indicating the status of a recall request for a specific recipient
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.