У меня есть файл (btmap, называемый secretimage), который я хочу прикрепить к почте, когда пользователь нажимает кнопку. Я хотел бы использовать Outlook для этого.Присоединение файла к почте с outlook
Так вот что я сделал:
using Outlook = Microsoft.Office.Interop.Outlook;
private void cmdSend_Click(object sender, EventArgs e)
{
Outlook.Application app = new Outlook.Application();
Outlook.MailItem mail = new Outlook.MailItem();
Outlook.Attachment attach = mail.Attachments.Add(secretImage, Outlook.OlAttachmentType.olByValue, 0, "Secret message");
}
Хотя это дает мне следующую ошибку:
Получение COM фабрики классов для компонента с CLSID { 00061033-0000-0000-C000 -000000000046} не удалось из-за следующей ошибки: 80040154 Klasse nicht registriert (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Последняя часть - немецкий, я не знаю, почему, на самом деле я задал язык на английском языке. «Klasse nicht registriert» переводит «Класс не зарегистрирован».
Я попытался сделать то, что рекомендуется здесь: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154 Хотя это не сработало.
Может ли кто-нибудь помочь мне здесь? Я действительно застрял.
Есть ли причина, по которой вы не используете API веб-служб Exchange? –
Ну, это больше практика, и я бы хотел сделать это, если это возможно. – tomet
Одна из проблем, с которыми вы столкнетесь в этом методе, заключается в том, что Outlook имеет меры безопасности, где вы должны разрешить отправке приложения от вашего имени. Он подскажет, и нет ответа на этот вопрос без использования какого-либо программного обеспечения, написанного специально для подавления этого сообщения и ответа на него. Это не идеально подходит для отправки электронных писем. Я бы предложил либо использовать веб-службы Exchange, либо разрешить машине быть SMTP и использовать пространство имен System.Net.Mail. Как всегда вы можете использовать код, который я привел ниже, чтобы сделать это, и я тестировал его, и он работает. – Bearcat9425