internal void StartMdn(OutgoingMessage message) { Debug.Assert(m_settings.HasMdnManager); IMdnMonitor client = m_settings.MdnMonitor.CreateMdnMonitorClient(); using (client as IDisposable) { List <Mdn> mdns = CreateMdnStarts(message); client.Start(mdns.ToArray()); } }
internal void UpdateMdn(IncomingMessage message) { Debug.Assert(m_settings.HasMdnManager); IMdnMonitor client = m_settings.MdnMonitor.CreateMdnMonitorClient(); using (client as IDisposable) { var notification = MDNParser.Parse(message.Message); var disposition = notification.Disposition; var originalMessageId = notification.OriginalMessageID; var originalSender = message.Recipients.First().Address; var originalRecipient = message.Sender.Address; client.Update( new Mdn // extract into MdnMonitorParser { MessageId = originalMessageId, Recipient = originalRecipient, Sender = originalSender, Status = disposition.Notification.ToString() }); } }
public MdnRecordRepository(IMdnMonitor client) { m_client = client; }