【背景】
outlook自身提供的功能有限,想做一些自动化或批量操作的时候需要自己写。首先要解决的就是连接exchange服务器的问题。
原本是用python做过一版,用的好好的,但是python的问题是环境一换,包一更新就又有问题,所以还是打算用C#写一个稳定的版本。
【控制台写法】
最终版本理想的肯定是做成通用窗体客户端,但是本篇先简单给出控制台版本连接outlook服务器的方法。
using System;
using Microsoft.Exchange.WebServices.Data;
namespace OutlookMailLogin
{
class Program
{
static void Main(string[] args)
{
// 输入你的 Outlook 邮箱凭证
string username = "<your_username>";
string password = "<your_password>";
string domain = "<your_domain>";
string emailAddress = "<your_email>";
// 创建 Exchange 服务对象
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
// 设置服务凭证
service.Credentials = new WebCredentials(username, password, domain);
// 设置服务器地址
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
try
{
// 获取收件箱中的邮件
FindItemsResults<Item> items = service.FindItems(WellKnownFolderName.Inbox, new ItemView(5));
// 打印邮件主题和发件人
foreach (Item item in items)
{
Console.WriteLine($"Subject: {item.Subject}");
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
需要替换的内容除了
string username = “<your_username>”;
string password = “<your_password>”;
string domain = “<your_domain>”;
string emailAddress = “<your_email>”;
之外,服务器地址也需要改成你自己的。运行后会读取5封新建标题并在控制台打印。试一下吧。