DSN Technical Documentation
> Documentation > Trustedbird > DSN > Technical Documentation
DSN (Delivery Status Notification) is a feature which enables the sender to ask the MTA (Mail Transfer Agent) some notifications according to the status of the transaction. There are four types of DSN that can be emitted by the sender:
- Success: ask a notification in case of success in delivering
- Failure: ask a notification in case of failure in delivering
- Delay: ask a notification in case of failure due to too much delay in delivering
- Never: ask to be never notified
The return values can be:
- Delivered: The message was successfully delivered
- Failed: The message could not be delivered
- Delayed: The Reporting MTA has so far been unable to deliver or relay the message, but it will continue to attempt to do so
- Relayed: The message has been relayed
- Expanded: The message has been successfully delivered and forwarded by the Reporting-MTA (alias)
Sommaire
Implementation
Specifications
The reference for the implementation of this functionality is the RFC 3461.
Architecture
Synthetic presentation of the architecture of the extension
This functionality is integrated to the source code of Thunderbird, without relaying on an extension.
This functionality is going to be integrated with the official source code by Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=93085
GUI files
At the GUI level, DSN request is implemented by one flag DSN, encapsulated in a nsIMsgSMIMECompFields object. The whole code handling those flags are contained in the JS built-in library MsgComposeCommands.js.
Then, the object nsIMsgSMIMECompFields is forwarded to the XPCOM layer, that handles the DSN request. The GUI has been updated so that the user can configure and activate the DSN request:
XPCOM files
The addition of DSN features in the SMTP implementation of Thunderbird is implemented by modifying existing XPCOM classes. For additionnal details, please refer to the patch provided to Mozilla : https://bugzilla.mozilla.org/show_bug.cgi?id=93085