Я читаю объект RDOAttachment, атрибут .Count равен 0, несмотря на то, что в электронном письме Outlook есть два встроенных изображения в электронном письме HTML.

Если вы перенесли тот же код с C # на VBA в Outlook, и он там отображается правильно.

Я что-то делаю неправильно или есть ошибка в объекте RDOAttachment?

Спасибо, Томас

0
mtp1 19 Дек 2019 в 00:28
Включите код, который вы используете, с вопросом, если вы получаете какую-либо ошибку, опубликуйте ее тоже, это поможет другим легче понять вашу проблему.
 – 
Vicky Salunkhe
19 Дек 2019 в 01:54

2 ответа

Вам необходимо сохранить сообщение Outlook для системы MAPI (и Redemption), чтобы иметь возможность его увидеть.

0
Dmitry Streblechenko 19 Дек 2019 в 02:19

Спасибо, Дмитрий, вот несколько комментариев по коду. Первоначально я разработал код в Outlook VBA, а затем перенес его на VS C #, там он как-то работает иначе.

У меня есть подписанное электронное письмо, и я хочу удалить подпись из электронного письма, после чего я переназначаю вложения. Как только я удалю ключевой файл из защищенного сообщения i_iMAPI, вложения из почты i_MAPI исчезнут. В VBA это не так.

Мысли как это исправить?

        i_iMAPI = i_rdoS.GetRDOObjectFromOutlookObject(i_rdoMessage, true);
        i_MAPI = i_rdoS.GetRDOObjectFromOutlookObject(i_rdoMessage);

        //if signed message remove key file and set MessageClass to standard Message
        if (i_iMAPI.MessageClass == "IPM.Note.SMIME.MultipartSigned")
        {
            i_iMAPI.MessageClass = "IPM.Note";
            //remove the key file and make sure it is really key file
            foreach (RDOAttachment att in i_iMAPI.Attachments)
            {
                if (att.DisplayName == "Untitled Attachment")
                {
                    att.Delete();
                }
            }

            //create specific Folder for each sender
            i_FilePath = Folders.StorageFolder + i_MAPI.SenderName;
            i_Folder.CreateFolder(i_FilePath);

            //remapp the attachements from MAPI to iMAPI Message
            foreach (RDOAttachment rdoAtt in i_MAPI.Attachments)
            {
                rdoAtt.SaveAsFile(i_FilePath + @"\" + rdoAtt.FileName);                    
                i_iMAPI.Attachments.Add(i_FilePath + @"\" + rdoAtt.FileName);                    
                i_iMAPI.Attachments[i_iMAPI.Attachments.Count].Hidden = rdoAtt.Hidden;                                        
            }
            //save changes
            i_iMAPI.Save();
        }
0
mtp1 19 Дек 2019 в 09:33