Message |
public class MessageDeliveryStatus : MimePart, IMessageDeliveryStatus, IMimePart, IMimeEntity, IDisposable
The MessageDeliveryStatus type exposes the following members.
Name | Description | |
---|---|---|
MessageDeliveryStatus | Initialize a new instance of the MessageDeliveryStatus class. | |
MessageDeliveryStatus(MimeEntityConstructorArgs) | Initialize a new instance of the MessageDeliveryStatus class. |
Name | Description | |
---|---|---|
Content |
Get or set the MIME content.
(Inherited from MimePart) | |
ContentBase |
Get or set the base content URI.
(Inherited from MimeEntity) | |
ContentDescription |
Get or set the description of the content if available.
(Inherited from MimePart) | |
ContentDisposition |
Get or set the content disposition.
(Inherited from MimeEntity) | |
ContentDuration |
Get or set the duration of the content if available.
(Inherited from MimePart) | |
ContentId |
Get or set the Content-Id.
(Inherited from MimeEntity) | |
ContentLocation |
Get or set the content location.
(Inherited from MimeEntity) | |
ContentMd5 |
Get or set the md5sum of the content.
(Inherited from MimePart) | |
ContentTransferEncoding |
Get or set the content transfer encoding.
(Inherited from MimePart) | |
ContentType |
Get the type of the content.
(Inherited from MimeEntity) | |
FileName |
Get or set the name of the file.
(Inherited from MimePart) | |
Headers |
Get the list of headers.
(Inherited from MimeEntity) | |
IsAttachment |
Get a value indicating whether this MimePart is an attachment.
(Inherited from MimeEntity) | |
StatusGroups | Get the groups of delivery status fields. |
Name | Description | |
---|---|---|
Accept |
Dispatches to the specific visit method for this MIME entity.
(Overrides MimePartAccept(MimeVisitor)) | |
ComputeContentMd5 |
Compute the MD5 checksum of the content.
(Inherited from MimePart) | |
Dispose |
Releases all resources used by the MimeEntity object.
(Inherited from MimeEntity) | |
Dispose(Boolean) |
Releases the unmanaged resources used by the MimePart and
optionally releases the managed resources.
(Inherited from MimePart) | |
Equals | (Inherited from Object) | |
Finalize |
Releases unmanaged resources and performs other cleanup operations before the
MimeEntity is reclaimed by garbage collection.
(Inherited from MimeEntity) | |
GetBestEncoding(EncodingConstraint, CancellationToken) |
Calculate the most efficient content encoding given the specified constraint.
(Inherited from MimePart) | |
GetBestEncoding(EncodingConstraint, Int32, CancellationToken) |
Calculate the most efficient content encoding given the specified constraint.
(Inherited from MimePart) | |
GetHashCode | (Inherited from Object) | |
GetType | (Inherited from Object) | |
MemberwiseClone | (Inherited from Object) | |
OnHeadersChanged |
Called when the headers change in some way.
(Inherited from MimePart) | |
Prepare |
Prepare the MIME entity for transport using the specified encoding constraints.
(Inherited from MimePart) | |
RemoveHeader |
Remove a header by name.
(Inherited from MimeEntity) | |
SetHeader(String, Byte) |
Set the value of a header using the raw value.
(Inherited from MimeEntity) | |
SetHeader(String, String) |
Set the value of a header.
(Inherited from MimeEntity) | |
ToString |
Return a String that represents the MimeEntity for debugging purposes.
(Inherited from MimeEntity) | |
TryInit |
Tries to use the given object to initialize the appropriate property.
(Inherited from MimeEntity) | |
VerifyContentMd5 |
Verify the Content-Md5 value against an independently computed md5sum.
(Inherited from MimePart) | |
WriteTo(Stream, CancellationToken) |
Write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteTo(String, CancellationToken) |
Write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteTo(FormatOptions, Stream, CancellationToken) |
Write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteTo(FormatOptions, String, CancellationToken) |
Write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteTo(Stream, Boolean, CancellationToken) |
Write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteTo(String, Boolean, CancellationToken) |
Write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteTo(FormatOptions, String, Boolean, CancellationToken) |
Write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteTo(FormatOptions, Stream, Boolean, CancellationToken) |
Write the MimePart to the specified output stream.
(Inherited from MimePart) | |
WriteToAsync(Stream, CancellationToken) |
Asynchronously write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteToAsync(String, CancellationToken) |
Asynchronously write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteToAsync(FormatOptions, Stream, CancellationToken) |
Asynchronously write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteToAsync(FormatOptions, String, CancellationToken) |
Asynchronously write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteToAsync(Stream, Boolean, CancellationToken) |
Asynchronously write the MimeEntity to the specified output stream.
(Inherited from MimeEntity) | |
WriteToAsync(String, Boolean, CancellationToken) |
Asynchronously write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteToAsync(FormatOptions, String, Boolean, CancellationToken) |
Asynchronously write the MimeEntity to the specified file.
(Inherited from MimeEntity) | |
WriteToAsync(FormatOptions, Stream, Boolean, CancellationToken) |
Asynchronously write the MimePart to the specified output stream.
(Inherited from MimePart) |
A message delivery status MIME part is a machine readable notification denoting the delivery status of a message and has a MIME-type of message/delivery-status.
For more information, see rfc3464.
public void ProcessDeliveryStatusNotification (MimeMessage message) { var report = message.Body as MultipartReport; if (report == null || report.ReportType == null || !report.ReportType.Equals ("delivery-status", StringComparison.OrdinalIgnoreCase)) { // this is not a delivery status notification message... return; } // process the report foreach (var mds in report.OfType<MessageDeliveryStatus> ()) { // process the status groups - each status group represents a different recipient // The first status group contains information about the message var envelopeId = mds.StatusGroups[0]["Original-Envelope-Id"]; // all of the other status groups contain per-recipient information for (int i = 1; i < mds.StatusGroups.Length; i++) { var recipient = mds.StatusGroups[i]["Original-Recipient"]; var action = mds.StatusGroups[i]["Action"]; if (recipient == null) recipient = mds.StatusGroups[i]["Final-Recipient"]; // the recipient string should be in the form: "rfc822;user@domain.com" var index = recipient.IndexOf (';'); var address = recipient.Substring (index + 1); switch (action) { case "failed": Console.WriteLine ("Delivery of message {0} failed for {1}", envelopeId, address); break; case "delayed": Console.WriteLine ("Delivery of message {0} has been delayed for {1}", envelopeId, address); break; case "delivered": Console.WriteLine ("Delivery of message {0} has been delivered to {1}", envelopeId, address); break; case "relayed": Console.WriteLine ("Delivery of message {0} has been relayed for {1}", envelopeId, address); break; case "expanded": Console.WriteLine ("Delivery of message {0} has been delivered to {1} and relayed to the the expanded recipients", envelopeId, address); break; } } } }