我正在尝试从c#上的不同邮件平台读取邮件。很多人说:
Microsoft.Office.Interop.Outlook.NameSpace nameSpace =
application.GetNamespace("MAPI");
nameSpace.Logon("", "", Missing.Value, Missing.Value);
inboxFolder =
NameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFo
lders.olFolderInbox);
Console.WriteLine("Folders: {0}", inboxFolder.Folders.Count);
尽管这对我没有用。
告诉我
Microsoft.Interop.Outlook
不存在。
我想知道怎么做
谢谢
答案 0 :(得分:1)
似乎您尚未添加对Microsoft.Office.Interop命名空间的引用。您需要在访问Outlook之前下载Microsoft.Office.Interop.Outlook.dll。这是访问收件箱文件夹的示例代码:
using System;
using System.Collections.Generic;
using Outlook = Microsoft.Office.Interop.Outlook;
public static class OutlookMailF
{
public static Outlook.ApplicationClass application = new Outlook.ApplicationClass();
static Outlook.NameSpace nameSpace = application.GetNamespace("MAPI");
static Outlook.MAPIFolder inbox = nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
static Outlook.MAPIFolder sent = nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
public static List<Outlook.MailItem> GetInbox()
{
List<Outlook.MailItem> allMails = new List<Outlook.MailItem>();
//inbox u tüm maillere ekle.
foreach (object item in inbox.Items)
{
if (item is Outlook.MailItem)
{
allMails.Add(item as Outlook.MailItem);
}
}
}
}
答案 1 :(得分:0)
仅当您仅使用Exchange / Office帐户时,MAPI / Office.Interop.Outlook才真正有用。如果是这种情况,则需要将此名称空间添加为引用。 如果您的计算机上没有此功能,则可以下载并安装Office.Interop程序包。
对于其他电子邮件提供商,大多数情况下;检索电子邮件是使用POP3或IMAP协议完成的。 您可以将几个包和/或项目添加到项目中=>搜索C#IMAP或C#POP3
要发送电子邮件,您将使用SMTP协议,该协议在Net Framework中可用。