Вложения Outlook.Add () не отображается в теле письма - PullRequest
3 голосов
/ 29 сентября 2008

Я создаю новый почтовый элемент в C # VS-2008 outlook 2007 и прикрепляю файл. Первая проблема заключается в том, что я не вижу области вложений под строкой темы, показывающей вложение. Если я отправляю электронное письмо, его свойства показывают, что вложение есть, и размер электронного письма увеличился на сумму вложения. Я просто не могу увидеть это или извлечь вложение.

Вот код, который я использую:

Outlook.MailItem mailItem = (Outlook.MailItem)this.Application.CreateItem(Outlook.OlItemType.olMailItem);
attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, 0, "DisplayName");

Я ожидаю, что часть "DisplayName" будет отображаться как имя вложения, и я должен использовать имя файла.

Я не вызываю .Send () для электронной почты программно, я вызываю mailItem.Display (true), чтобы показать электронную почту пользователю для любых окончательных изменений. На данный момент я могу посмотреть на свойства и увидеть, что там есть вложение.

Если я нажимаю «отправить» (отправляю самому себе), я вижу то же самое, вложение появляется, но не доступно.

Ответы [ 4 ]

4 голосов
/ 29 сентября 2008

Я нашел проблему. Я изменяю код для использования следующего:

attachments.Add(ReleaseForm.ZipFile, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);

Похоже, что параметры Position и DisplayName управляют тем, что происходит с olByValue. Используя Type.Missing и теперь я правильно вижу вложения в электронном письме.

3 голосов
/ 24 августа 2009

Кстати, если вы установите Положение в 0, ваше вложение будет скрыто:

Свойство Attachment.Position

0 голосов
/ 22 сентября 2017

Бит старого поста, но, как упоминали некоторые другие, используя

attachments.Add(path, Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);

мне тоже не помогло, поэтому я решил поделиться альтернативным подходом. Решение этой проблемы закончилось тем, что вы набрали mailItem.Save(); прямо перед тем, как позвонить mailItem.Display(true);. Для этого нужно обновить форму Outlook, чтобы показать ваши вложения. Также стоит отметить, что это сохранит сообщение в черновиках. Не проблема, если вы ожидаете, что пользователь отправит электронное письмо, но в случае отмены оно останется в папке «Черновики».

0 голосов
/ 19 июня 2012

У меня точно такая же проблема, как и у вас, но даже я изменяю код как ваш, но он все равно не работает. опять же, он уже отображается в почтовых элементах, но не отображается на почтовых элементах. ОК, вы должны убедиться, что тело mailItem не является нулевым, чтобы отобразить информацию о посещении

...