2016-08-29 6 views
1

Я создал форму с использованием Winform для отправки электронной почты. Окно Outlook 2010 открывается и работает нормально. Однако, на моем друг машину, он не работает, потому что он имеет перспективы 2013. Можно ли создать отправляющую почту, которая будет работать как на Outlook 2010 и 2013. Ниже приведен код, я использую:Внесите Send Mail из winform, используя Outlook 2010 и 2013 C#

var outlookApp = new Outlook.Application(); 

Outlook.MailItem mailItem = outlookApp.CreateItem(Outlook.OlItemType.olMailItem); 

mailItem.Subject = this.txtTitle.Text; 
mailItem.HTMLBody = this.HtmlText; 
mailItem.HTMLBody = mailItem.HTMLBody + ReadSignature(); 
mailItem.Importance = Outlook.OlImportance.olImportanceLow; 
mailItem.Display(true); 

Кроме того, COM у меня есть использование является Microsoft Outlook 14,0 Объект и я знаю, что для Outlook 2013 это Microsoft Outlook 15,0 Объект

+0

Вы можете [отправить электронное письмо] (http://stackoverflow.com/a/32767496/3110834) в формате html и содержать некоторые изображения. Какое требование побуждает вас использовать внешний вид для отправки электронной почты? –

+0

Причина в том, что из winform мне нужно установить изображения и заголовок на основе пользовательского ввода из формы напрямую. Кроме того, мне нужно отправить почту через Outlook, так как мне нужно использовать адрес электронной почты компании и так далее. –

+0

Все это можно сделать с помощью ['SmtpClient'] (https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient (v = vs.110) .aspx) без каких-либо проблем , Взгляните на [link] (http://stackoverflow.com/a/32767496/3110834), который я поделил в первом комментарии или [этот] (http://stackoverflow.com/a/36926380/3110834). –

ответ

1

Если вы хотите иметь версию независимости, после того, как вы добавили ссылку на желаемый офис Interop например, Microsoft.Office.Interop.Outlook.dll, щелкните правой кнопкой мыши по ссылке dll и выберите свойства и в сетке свойств , установить Embed Interop Types на true.

Для получения дополнительной информации:

Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio

Если вы вставляете информацию о типе в приложении, которое ссылается на COM объектов, вы можете устранить необходимость первичной сборки взаимодействия (PIA). Кроме того, информация о встроенном типе позволяет вам добиться независимости версии для вашего приложения. То есть ваша программа может быть записана для использования типов из нескольких версий библиотеки COM , не требуя для каждой версии конкретного PIA. Это общий сценарий для приложений, использующих объекты из Microsoft Библиотеки Office. Информация о встроенном типе позволяет использовать одну и ту же сборку для работы с различными версиями Microsoft Office на на разных компьютерах без необходимости перераспределять программу или PIA для каждой версии Microsoft Office.

+0

По умолчанию для Embed Interop Type установлено значение True и все равно оно не сработало. Мне пришлось установить Outlook 2013, и теперь он работает. Как только реализация будет завершена, я проверю, совместима ли она с обратной совместимостью. –

+1

Дополнительно к [MSDN] (https://msdn.microsoft.com/en-us/library/mt632251.aspx), которую я поделился, также взгляните на эту статью, вы найдете ее полезной [Painless Office Interop с использованием Visual C#] (http://www.claudiobernasconi.ch/2014/02/13/painless-office-interop -Использование-визуально-с-острый /) –