Измените CDO.Message и сохраните его в файл.

Следуя ответу Риса Вринда относительно загрузки CDO.Message из EML файл, я пытаюсь изменить текст сообщения и вложения и сохранить его обратно в файл (сохраняя исходный формат файла).

Я написал следующее, что не работает - сообщение записывается в файл, но сообщение не изменяется и кодировка отличается от исходного сообщения:

 CDO.Message msg = new CDO.MessageClass();
 //load message from EML file
 //....

 //try to modify the body of the message
 message.TextBody = "Modified body";   

 ADODB.Stream stream = new ADODB.StreamClass();
 stream.Open();
 stream.Type = message.GetStream().Type;
 stream.Charset = message.GetStream().Charset;

 message.DataSource.SaveToObject(stream, "_Stream");
 stream.SaveToFile("modified.eml", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);

person elad-ep    schedule 07.10.2015    source источник
comment
Вы решили эту проблему? Если бы вы это сделали, было бы здорово, если бы вы могли опубликовать свое решение в качестве ответа, особенно потому, что это один из лучших результатов при поиске в Google для создания eml-файла из CDO.Message   -  person Breeze    schedule 09.09.2016
comment
обновление: код вроде работает (спасибо, это уже помогло мне), но изменение TextBody, похоже, не влияет на HTMLBody, это была проблема?   -  person Breeze    schedule 09.09.2016