将电子邮件附件保存到目录时出现问题

本文关键字:问题 电子邮件 保存 | 更新日期: 2023-09-27 18:31:44

我正在开发一个应用程序,可以抓取我的电子邮件并嗅出任何带有附件的电子邮件。 所有附件都按接收顺序返回。 现在我想更进一步,想将任何附件保存在本地目录中。 我一直在寻找文档或示例,但我是空的。 我将向您展示我的代码片段

此功能将获取电子邮件附件

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 + "'n'nDetails : 'n'n " + 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);
}