search for messages where the Subject header contains either "MimeKit" or "MailKit"
var query = SearchQuery.SubjectContains("MimeKit").Or(SearchQuery.SubjectContains("MailKit"));
var uids = client.Inbox.Search(query);
读取方式二:读取所有邮件
var uids = client.Inbox.Search(SearchQuery.All);
邮件操作
操作邮件一:读取邮件标题
string subject = message.Subject;
if (!subject.Contains("MimeKitDemo"))
return;
操作邮件二:读取正文
string body = message.TextBody ?? string.Empty;
if (!body.Contains("MimeKitDemoBody"))
return;
操作邮件三:下载邮件附件
var attachments = message.Attachments;
if (attachments.Any())
{
foreach (var attachment in attachments)
DownloadAttachment(attachment);
}
private static void DownloadAttachment(MimeEntity attachment)
{
if (attachment is MessagePart)
{
var fileName = attachment.ContentDisposition?.FileName;
var rfc822 = (MessagePart)attachment;
if (string.IsNullOrEmpty(fileName))
fileName = "attached-message.eml";
var path = Path.Combine(DIRECTORY, fileName);
using (var stream = File.Create(path))
rfc822.Message.WriteTo(stream);
}
else
{
var part = (MimePart)attachment;
var fileName = part.FileName;
var path = Path.Combine(DIRECTORY, fileName);
using (var stream = File.Create(path))
part.Content.DecodeTo(stream);
}
}