コード例 #1
0
        private static IBodyPart GetDeliveryStatusPart(MessageClass message)
        {
            const string method = "GetStatusPart";

            if (!message.ContentMediaType.Equals("multipart/report", StringComparison.InvariantCultureIgnoreCase))
            {
                #region Log
                Log(Event.Trace, method, "Unrelated Content-Type.", null, message);
                #endregion
                return(null);
            }

            if (message.GetFieldParameter("urn:schemas:mailheader:content-type", "report-type") != "delivery-status")
            {
                #region Log
                Log(Event.Information, method, "Unknown report-type.", null, message);
                #endregion
                return(null);
            }

            var statusPart = message.BodyParts.Cast <IBodyPart>()
                             .FirstOrDefault(p => p.ContentMediaType.Equals("message/delivery-status", StringComparison.InvariantCultureIgnoreCase));

            if (statusPart == null)
            {
                #region Log
                Log(Event.Error, method, "The message/delivery-status part not found.", null, message);
                #endregion
                return(null);
            }

            return(statusPart);
        }