Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#windows窗体应用程序上阅读来自许多不同电子邮件平台的邮件_C#_Visual Studio 2017_Mailmessage - Fatal编程技术网

在c#windows窗体应用程序上阅读来自许多不同电子邮件平台的邮件

在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.

我正在尝试在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
不存在。 我想知道怎么做


谢谢

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的项目);
}
}
}
}