我正在编写一个Windows控制台应用程序,用于从Office365上设置的特定电子邮件帐户读取电子邮件。账户已全部设置好,我们能够从Outlook收到电子邮件。该控制台应用程序将在远程服务器上按计划运行,并从特定的电子邮件中提取指定的附件,然后将这些电子邮件移到另一个文件夹中。我选择使用MimeKit的MailKit库,并已开始编写一个小型测试应用程序,如下所示:
当运行此代码时,调试器会在client.Authenticate处报错,报错信息是“AuthenticationException”。我在代码中使用的userName和passWord是正确的,且与我在Outlook中使用的相同。我在这里做了基本的事情吗?我可以以明文形式提供密码,还是需要使用特定的格式?如果我没有提供所有信息,请告诉我,我会补充并发布在此处。
当运行此代码时,调试器会在client.Authenticate处报错,报错信息是“AuthenticationException”。我在代码中使用的userName和passWord是正确的,且与我在Outlook中使用的相同。我在这里做了基本的事情吗?我可以以明文形式提供密码,还是需要使用特定的格式?如果我没有提供所有信息,请告诉我,我会补充并发布在此处。
using MailKit.Net.Imap;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace CAppHarvestEmail
{
class Program
{
static void Main(string[] args)
{
try
{
var userName = "bi@mydomain.co";
var passWord = "mybipassword";
using (var client = new ImapClient())
{
client.Connect("outlook.office365.com", true);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(userName, passWord);
var inbox = client.Inbox;
inbox.Open(MailKit.FolderAccess.ReadOnly);
Console.WriteLine("Total messages: {0}", inbox.Count);
Console.WriteLine("Recent messages: {0}", inbox.Recent);
client.Disconnect(true);
}
}
catch (Exception e)
{
throw;
}
}
}
}