Outlook
Microsoft 电子邮件和日历产品系列。
51 个问题
有没有大佬知道哪有关于C#使用IMAP和OAuth验证连接outlook邮箱并获取邮件的文档,我找了一天的就是找不到
可以使用Microsoft Graph API结合OAuth 2.0来实现C#中的IMAP连接到outlook获取邮件.
这是 Graph的相关文档:身份验证和授权基础知识
Microsoft 标识平台中的 OAuth 2.0 和 OpenID Connect (OIDC)
示例:通过授权代码流程获取令牌
using System;
using Microsoft.Identity.Client;
class Program
{
static async Task Main(string[] args)
{
var clientId = "your-client-id";
var tenantId = "your-tenant-id";
var clientSecret = "your-client-secret";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority(new Uri($"https://login.microsoftonline.com/{tenantId}"))
.Build();
string[] scopes = { "https://graph.microsoft.com/.default" };
AuthenticationResult result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
Console.WriteLine($"Token: {result.AccessToken}");
}
}
获取邮件: 使用 Microsoft Graph API 获取邮件。下面是通过 Graph API 调用的示例:
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
class Program
{
static async Task GetEmails(string accessToken)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = await client.GetAsync("https://graph.microsoft.com/v1.0/me/messages");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。