在c#windows窗体应用程序上阅读来自许多不同电子邮件平台的邮件
我正在尝试在c#上读取来自不同邮件平台的邮件。许多人说:在c#windows窗体应用程序上阅读来自许多不同电子邮件平台的邮件,c#,visual-studio-2017,mailmessage,C#,Visual Studio 2017,Mailmessage,我正在尝试在c#上读取来自不同邮件平台的邮件。许多人说: Microsoft.Office.Interop.Outlook.NameSpace nameSpace = application.GetNamespace("MAPI"); nameSpace.Logon("", "", Missing.Value, Missing.Value); inboxFolder = NameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.
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
不存在。
我想知道怎么做
谢谢MAPI/Office.Interop.Outlook只有在您仅使用Exchange/Office帐户时才有用。如果是这种情况,您需要添加此命名空间作为引用。 如果您的计算机上没有此软件包,则可以下载并安装Office.Interop软件包 对于其他电子邮件提供商,大多数情况下;使用POP3或IMAP协议检索电子邮件。 有几个包和/或项目可以添加到项目中=>搜索C#IMAP或C#POP3
要发送电子邮件,您将使用SMTP协议,该协议在Net Framework中可用。您似乎尚未添加对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);
}
}
}
}
使用系统;
使用System.Collections.Generic;
使用Outlook=Microsoft.Office.Interop.Outlook;
公共静态类OutlookMailF
{
public static Outlook.ApplicationClass application=新建Outlook.ApplicationClass();
静态Outlook.NameSpace NameSpace=application.GetNamespace(“MAPI”);
静态Outlook.MAPIFolder收件箱=nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
静态Outlook.MAPIFolder sent=nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
公共静态列表GetInbox()
{
List allMails=新列表();
//收件箱u tum mailler ekle。
foreach(收件箱中的对象项。项)
{
如果(项目为Outlook.MailItem)
{
AllMail.Add(作为Outlook.MailItem的项目);
}
}
}
}