У меня был некоторый успех, кодирующий RTF-объект из MailItem с использованием UTF8Encoding. Я могу составить новое электронное письмо, сделать все новое письмо и отправить по электронной почте. При нажатии send, я добавляю сообщение с тегом, который также добавляется в категории. Все это работает и через RTFBbody.Редактирование MailItem.RTFBody через кодирование
Проблема возникает, когда я отвечаю на электронные письма RTF, которые для целей тестирования - это просто письма, которые я отправил на свое одинокое я. Когда я отправляю ответное письмо и новые теги, я сначала удаляю старые теги, а затем добавляю новые теги. Когда я установил RTFBody
в ответном письме с отредактированной строкой, содержащей новые теги, я получаю ошибку «недостаточно памяти или места на диске». Этого не происходит, когда я просто удаляю теги с той же функцией.
пыльник это код, я использую:
private void ChangeRTFBody(string replaceThis, string replaceWith)
{
byte[] rtfBytes = Globals.ThisAddIn.email.RTFBody as byte[];
System.Text.Encoding encoding = new System.Text.UTF8Encoding();
string rtfString = encoding.GetString(rtfBytes);
rtfString = rtfString.Replace(replaceThis, replaceWith);
rtfBytes = encoding.GetBytes(rtfString);
Globals.ThisAddIn.email.RTFBody = rtfBytes; < // The error is here only on
// reply and only when I replace
// with new tags
}
Эти вызовы, которые я делаю:
Удалить старый тег: ChangeRTFBody(lastTag, "");
Добавить новый тег: ChangeRTFBody("}}\0", newTag + "}}\0");
Like Я сказал: Это работает, когда я создаю новое электронное письмо и отправляю его, но не тогда, когда я пытаюсь ответить на тот же адрес электронной почты. Также кажется, что размер byte[]
почти удваивается после удаления. Когда я проверяю его во время удаления, он составляет около 15k байт, и когда я проверяю во время добавления, он переходит на более чем 30k байт. Когда я пытаюсь добавить вновь накачанный byte[]
в rtfBody, я получаю сообщение об ошибке.
Спасибо за любую помощь и советы и извините за все чтение.
Да, я в конечном итоге с помощью WordEditor, а также. Редактирование RTF было слишком большой головной болью. – Natzely