A basic message body part.
Inheritance HierarchyMailKit (in MailKit.dll) Version: 4.12.1
Syntaxpublic class BodyPartBasic : BodyPart
The BodyPartBasic type exposes the following members.
Constructors Name Description BodyPartBasic Initializes a new instance of the BodyPartBasic class. Top Properties Methods RemarksRepresents any message body part that is not a multipart, message/rfc822 part, or a text part.
Examplepublic static void DownloadBodyAndAttachments (string baseDirectory) { using (var client = new ImapClient ()) { client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect); client.Authenticate ("username", "password"); client.Inbox.Open (FolderAccess.ReadOnly); var query = SearchQuery.SubjectContains ("MimeKit").Or (SearchQuery.SubjectContains ("MailKit")); var uids = client.Inbox.Search (query); var items = client.Inbox.Fetch (uids, MessageSummaryItems.UniqueId | MessageSummaryItems.BodyStructure); foreach (var item in items) { var directory = Path.Combine (baseDirectory, item.UniqueId.ToString ()); Directory.CreateDirectory (directory); var bodyPart = item.TextBody; if (bodyPart != null) { var plain = (TextPart) client.Inbox.GetBodyPart (item.UniqueId, bodyPart); var text = plain.Text; File.WriteAllText (Path.Combine (directory, "body.txt"), text); } bodyPart = item.HtmlBody; if (bodyPart != null) { var html = (TextPart) client.Inbox.GetBodyPart (item.UniqueId, bodyPart); var text = html.Text; File.WriteAllText (Path.Combine (directory, "body.html"), text); } foreach (var attachment in item.Attachments) { var entity = client.Inbox.GetBodyPart (item.UniqueId, attachment); if (entity is MessagePart) { var rfc822 = (MessagePart) entity; var path = Path.Combine (directory, attachment.PartSpecifier + ".eml"); rfc822.Message.WriteTo (path); } else { var part = (MimePart) entity; var fileName = attachment.FileName; if (string.IsNullOrEmpty (fileName)) { if (!MimeTypes.TryGetExtension (attachment.ContentType.MimeType, out string extension)) extension = ".dat"; fileName = Guid.NewGuid ().ToString () + extension; } var path = Path.Combine (directory, fileName); using (var stream = File.Create (path)) part.Content.DecodeTo (stream); } } } client.Disconnect (true); } }See Also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4