public Accept ( MimeKit.MimeVisitor visitor ) : void | ||
visitor | MimeKit.MimeVisitor | The visitor. |
return | void |
/// <summary> /// detects whether a message is a standard bounce message. /// </summary> /// /// essentially this finds the `multipart/report; report-type=delivery-status` part and /// its `message/delivery-status` sub-part to decide whether a message is a bounce. /// /// the message/delivery-status mime part looks something like: /// /// Content-Type: message/delivery-status /// /// Reporting-MTA: dns; PTPEDGE02.test.local /// /// Final-recipient: RFC822; /// [email protected] /// Action: failed /// Status: 5.1.1 /// Remote-MTA: dns; mx.google.com /// X-Supplementary-Info: <mx.google.com #5.1.1 smtp;550-5.1.1 The email account /// that you tried to reach does not exist.Please try 550-5.1.1 double-checking /// the recipient's email address for typos or 550-5.1.1 unnecessary spaces. /// Learn more at 550 5.1.1 https://support.google.com/mail/answer/6596 /// om11si19081667wic.29 - gsmtp> /// /// See the multipart/report format RFC: /// The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages /// https://tools.ietf.org/html/rfc6522 /// See the message/delivery-status RFC: /// An Extensible Message Format for Delivery Status Notifications /// https://tools.ietf.org/html/rfc3464 public static BounceDetectResult Detect(MimeMessage message) { var visitor = new Visitor(); message.Accept(visitor); var result = visitor.Result; return new BounceDetectResult( message, result.DeliveryNotificationPart, result.DeliveryStatus, result.UndeliveredMessagePart ); }
public string CreateFile(MimeMessage mailMessageEx) { if (mailMessageEx == null) throw new ArgumentNullException(nameof(mailMessageEx)); var tempDir = CreateUniqueTempDirectory(); var visitor = new HtmlPreviewVisitor(tempDir); mailMessageEx.Accept(visitor); string htmlFile = Path.Combine(tempDir, "index.html"); _logger.Verbose("Writing HTML Preview file {HtmlFile}", htmlFile); File.WriteAllText(htmlFile, visitor.HtmlBody, Encoding.Unicode); return htmlFile; }
/// <summary> /// Dispatches the message to one of the more specialized visit methods in this class. /// </summary> /// <remarks> /// Dispatches the message to one of the more specialized visit methods in this class. /// </remarks> /// <param name="message">The MIME message.</param> public virtual void Visit (MimeMessage message) { if (message != null) message.Accept (this); }
void Render (MimeMessage message) { var tmpDir = Path.Combine (Path.GetTempPath (), message.MessageId); var visitor = new HtmlPreviewVisitor (tmpDir); Directory.CreateDirectory (tmpDir); message.Accept (visitor); DisplayHtml (visitor.HtmlBody); DisplayAttachments (visitor.Attachments); }
void Render (WebBrowser browser, MimeMessage message) { var tmpDir = Path.Combine (Path.GetTempPath (), message.MessageId); var visitor = new HtmlPreviewVisitor (tmpDir); Directory.CreateDirectory (tmpDir); message.Accept (visitor); browser.DocumentText = visitor.HtmlBody; }