Я пытаюсь создать файл формата Outlook .msg, используя мой код C#. Я использовал ниже 2 кода:Создать Outlook. MSG-файл в C#
Метод 1:
Microsoft.Office.Interop.Outlook.Application objOutlook = new Microsoft.Office.Interop.Outlook.Application();
// Creating a new Outlook message from the Outlook Application instance
Microsoft.Office.Interop.Outlook.MailItem msgInterop = (Microsoft.Office.Interop.Outlook.MailItem)(objOutlook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem));
// Set recipient information
msgInterop.To = "[email protected]";
msgInterop.CC = "[email protected]";
// Set the message subject
msgInterop.Subject = "Subject";
// Set some HTML text in the HTML body
msgInterop.HTMLBody = "<h3>HTML Heading 3</h3> <u>This is underlined text</u>";
// Save the MSG file in local disk
string strMsg = @"c:\\temp\TestInterop.msg";
msgInterop.SaveAs(strMsg, Microsoft.Office.Interop.Outlook.OlSaveAsType.olMSG);
Второй метод:
Redemption.RDOSession Session = new RDOSession();
Redemption.RDOMail Msg = Session.CreateMessageFromMsgFile(@"c:\temp\YourMsgFile.msg");
Msg.Sent = true;
Msg.Subject = "test";
Msg.Body = "test body";
Msg.Recipients.AddEx("the user", "[email protected]", "SMTP", rdoMailRecipientType.olTo);
Msg.Save();
Оба метода дает ошибку выполнения, как показано ниже:
System.Runtime.InteropServices.COMException (0x8004010F): Creating an instance of the COM component with CLSID {29AB7A12-B531-450E-8F7A-EA94C2F3C05F} from the IClassFactory failed due to the following error: 8004010f Exception from HRESULT: 0x8004010F.
Я исследовал и нашел проблему совместимости с платформой. Я попытался сменить платформу с 32-битного на x64. Тем не менее это не решило мою проблему.
Я рекомендую использовать встроенную функцию .Net MailMessage для сохранения сообщения как [описано здесь] (http://stackoverflow.com/questions/1264672/how-to-save-mailmessage-object-to-disk-as -eml-or-msg-file) – Esko
MailMessage не позволяет создать мою собственную пробную электронную почту. Когда я пытался установить To, он говорит, что это переменная только для чтения. – Neha
Что вы подразумеваете под пример электронной почты? To-property является обязательным для чтения, поскольку это список, вам нужно сделать message.To.Add (...) – Esko