Интересно, возможно ли с помощью .NET Framework или Microsoft.Office.Interop.Outlook загрузить электронное сообщение (* .msg), выполнить поиск, заменить и отправить это из C#.Использовать файл сообщений Outlook (msg) в качестве шаблона
Все это происходит на сервере, поэтому Outlook не может быть установлен.
То, что я пытался
библиотека Redemption, но так или иначе она теряет изображения встраиваются в шаблоне и не может понять, чтобы исправить эту
Использование Microsoft.Office.Interop. Перспективы
Application objOutlook = new Application(); objOutlook.CreateItemFromTemplate("c:\temp\..",)
Но он ожидает, как это второй параметр кругозора ВОЛП дер, я не могу дать ему путь к файлу, где он сэкономит
Я имею в виду, чтобы переключиться на обычные текстовые файлы вместо C#, но, возможно, кто-то сделал это уже
Update 1
Это код погашения, который я пробовал. Проблема заключается в том, что форматирование и изображения (подписи не сохраняется)
using Interop.Redemption;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Replace(@"mailnonunicode.msg");
Replace(@"mailunicode.msg");
Replace(@"mailtemplate.oft");
}
static void Replace(string cTestharnessKmailMsg)
{
RDOSession rdoSession = new RDOSession();
RDOMail messageFromMsgFile = rdoSession.GetMessageFromMsgFile(cTestharnessKmailMsg);
messageFromMsgFile.Body = messageFromMsgFile.Body.Replace("abc",
"xyz");
messageFromMsgFile.Save();
}
}
}
Update 2/Решение
Если вы хотите сохранить форматирование, вы должны работать с HTMLBody или свойствами RTFBody , а не с текстом Body.
Я не могу иметь внешний вид, установленный на сервере, поэтому нет папок с перспективой. Я думаю, что это исключает выкуп. :( – buckley
Семейство объектов RDO (http://www.dimastr.com/redemption/rdo_introduction.htm) не нуждается в Outlook, а только в системе MAPi, что означает, что вы можете установить автономную версию MAPI (http://www.microsoft.com/downloads/details.aspx?FamilyID=e17e7f31-079a-43a9-bff2-0a110307611e&DisplayLang=en). Затем вы можете вызвать RDOSession.LogonExchangeMailbox для динамического подключения к почтовому ящику, получить папку, в которой будет отображаться сообщение (например, RDOSession.GetDefaultFolder (olFolderDrafts), создайте сообщение (RDOFolder.Items.Add), импортируйте файл MSG (RDOMail.Import), а затем отправьте его. –
Я добавил свой код к вопросу. способ сделать замену? Я могу отправить вам полное решение, если это полезно. – buckley