如何在c#中从草稿文件夹发送Outlook电子邮件

时间:2015-03-30 07:28:48

标签: c# outlook

我正在尝试从c#中的MAPI草稿文件夹中发送Outlook电子邮件项,但没有成功。我仍在搜索如何发送MAPI文件夹(folderDrafts)项目,将其转换为MailItem不适用。

以下是我使用的代码:

Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace nameSpace = app.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder folderDrafts = nameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderDrafts);

Microsoft.Office.Interop.Outlook.MailItem mailItem = (Microsoft.Office.Interop.Outlook.MailItem)app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
mailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
mailItem.Subject = "Test Outlook Mail Item";
mailItem.To = "receiver";
mailItem.HTMLBody = "html";
mailItem.Save();
mailItem = (Microsoft.Office.Interop.Outlook.MailItem)folderDrafts.Items[0];
mailItem.Send();

也许有人可以提供帮助。提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果您只需要发送存储在Draft Items文件夹中的项目,则无需创建新的MailItem对象。

请注意,各种Outlook项目都可以存储在文件夹中,而不仅仅是邮件项目。因此,在将项目转换为代码中的MailItem类之前,需要检查MessageClass。例如,在C#中,您可以使用is或as运算符。您还可以使用后期绑定技术检查项目的MessageClass属性,请参阅Type.InvokeMember。

您可能会发现How To: Create and send an Outlook message programmatically文章很有帮助。

答案 1 :(得分:0)

摆脱以下几行:

mailItem = (Microsoft.Office.Interop.Outlook.MailItem)folderDrafts.Items[0];