Невозможно получить вложения в сообщении CDO - PullRequest
0 голосов
/ 23 октября 2019

Я не могу получить вложения из сообщения CDO, проанализированного из файла EML.

Переменная attachment в foreach (var attachment in message.Attachments) не определяется как Microsoft.Exchange.WebServices.Data.Attachment.attachment, но какobject.

Ниже приведен мой фрагмент кода. Любая помощь будет оценена.

public static void ReplyFromEmailFile(string savedEmlFullFilePath)
{
    InitExchangeService();

    CDO.Message message = LoadEmlFromFile(savedEmlFullFilePath);

    EmailMessage mail = new EmailMessage(service);

    //Attachment count is 1 (pdf file)
    AppLogger.LogInfo("count: " + message.Attachments.Count.ToString());

    foreach (var attachment in message.Attachments)
    {
        //System.__ComObject
        AppLogger.LogInfo(attachment.GetType().ToString());

        if (attachment is FileAttachment)
        {
            //not reached
            FileAttachment fileAttachment = attachment as FileAttachment;
            fileAttachment.Load();
            fileAttachment.Load(AppConfig.EmailSaveFilePath + fileAttachment.Name);
            FileStream fs = new FileStream(AppConfig.EmailSaveFilePath + fileAttachment.Name, FileMode.OpenOrCreate);
            mail.Attachments.AddFileAttachment(fileAttachment.Name, fs);
        }
    }

    mail.Body = message.HTMLBody;
    mail.ToRecipients.Add("user@test.com");
    mail.SendAndSaveCopy();
}

public static CDO.Message LoadEmlFromFile(string savedEmlFullFilePath)
{
    CDO.Message msg = new CDO.MessageClass();
    ADODB.Stream stream = new ADODB.StreamClass();

    stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty);
    stream.LoadFromFile(savedEmlFullFilePath);
    stream.Flush();
    msg.DataSource.OpenObject(stream, "_Stream");
    msg.DataSource.Save();

    stream.Close();
    return msg;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...