我正在开发一个应用程序,可以抓取我的电子邮件并嗅出任何带有附件的电子邮件。 所有附件都按接收顺序返回。 现在我想更进一步,想将任何附件保存在本地目录中。 我一直在寻找文档或示例,但我是空的。 我将向您展示我的代码片段
此功能将获取电子邮件附件
public static List<IMessage> GetEmailAttachments()
{
OutlookServicesClient star_Mail_Box = Start_OutLook_Services();
try
{
var Email_Box = star_Mail_Box.Users["*****@dell.com"].Folders["Inbox"].Messages.Where(m => m.HasAttachments == true).Expand(m => m.Attachments).ExecuteAsync();
var messages = Email_Box.Result.CurrentPage;
foreach (var message in messages.OrderByDescending(m=> m.DateTimeReceived))
{
var attachments = message.Attachments.CurrentPage;
foreach (var attachment in attachments)
{
///This is where I will need to put my Logic.
}
}
}
catch (Exception ex)
{
Console.WriteLine("Not Able To Get This Mail Box" + ex.Message + "nnDetails : nn " + ex.InnerException);
Console.ReadLine();
}
return null; // returning null right now for testing
}
好的,
所以在查看附件定义后,我想我通过一个字节数组来实现我想要的。 这是我的附件循环的一些代码。
foreach (FileAttachment attachment in attachments)
{
byte[] bytefiles = attachment.ContentBytes;
string path = @"C:Top-Level" + attachment.Name;
if (!string.IsNullOrEmpty(message.Subject))
{
path = @"C:Top-Level" + message.Subject + "." + attachment.ContentType;
}
File.WriteAllBytes(path, bytefiles);
}