У меня электронное письмо, сгенерированное C # с использованием Outlook Interop, но мне нужно использовать RTFBody, так как оно отформатировано в RTF, а не HTMLBody, где я вижу все примеры возможности добавления подписей там.
Я пытаюсь сделать что-то подобное, но это не работает для меня.Любой совет, чтобы заставить это работать в Outlook 2016?
MyOutlook.Mailitem oMailItem =(MyOutlook.MailItem)oApp.CreateItem(MyOutlook.olItemType.olMailItem);
oMailItem.Display(oMailItem); //create the empty mail item
oMailItem.To = emailform.ToMain;
oMailItem.CC = ccStrings;
oMailItem.BCC = emailForm.BCC;
oMailItem.Subject = emailForm.Subject;
oMailItem.RTFBody = GetRTBText(); //function to get RTF byte array
private byte[] GetRTBText() {
Clipboard.Clear();
RTBBody.SelectAll();
RTBBody.Copy();
return Encoding.UTF8.GetBytes(Clipboard.GetText(TextDataFormat.Rtf));
}
ОБНОВЛЕНИЕ:
Таким образом, похоже, что я могу получить подпись для отображения, когда я делаю трюк, аналогичный oMail.HTMLBody сomail.RTFBody и связать что-то с ним.Проблема в том, что оригинальный элемент не отображается, потому что он говорит, что вы не можете добавить байт [].Мне нужно либо переопределить оператор + для этого экземпляра, либо выяснить, как добавить к нему пустой байтовый массив ...
Поэтому я попытался объединить возвращаемый байтовый массив с пустым байтовым массивом.Выдает исключение из памяти.Я пытался объединить с самим элементом электронной почты oMailItem.RTFBody, та же проблема ...
не уверен, что еще делать ... когда я делаю это, даже если он выдает ошибку, появляется подпись, просто тело письма не имеет.