Aspose.Email  适用于 .NET

如何在 .NET 应用中使用 Microsoft 365 Graph API 发送电子邮件

将安全的邮件发送功能集成到您的 .NET 应用中,支持消息撰写、OAuth2 身份验证和文件附件。

  下载免费试用版

在 C# 中使用 Microsoft 365 Graph API 发送电子邮件

将 Microsoft Graph API 集成到 .NET 应用中,使开发者能够简化通过 Microsoft 365 服务发送消息的过程。 Aspose.Email for .NET 简化了此过程,提供了附件处理、跟踪和安全通信等增强功能。该库使您能够直接从 .NET 应用创建并发送个性化、高性能的电子邮件通信。

使用 Aspose.Email 与 Microsoft Graph 的关键优势

  • 无需 SMTP 或基础认证 - 使用安全的现代基于令牌的身份验证(OAuth2)。

  • Microsoft 365 与 Outlook 集成 - 轻松连接 Microsoft 365 邮箱和服务。

  • 面向 .NET 开发者的企业级准备 - 旨在实现可扩展性、可靠性和企业邮件工作流。

  • 完全托管的 API - 无外部依赖 - 一体化 .NET 库,无需 Graph SDK 或第三方客户端。

  • 支持 .NET Framework 与 .NET Core / .NET 6+ - 兼容现代与传统 .NET 环境。

  • 快速部署,最少配置 - 易于使用的 API,附示例代码,快速实现。

代码示例

体验使用 Aspose.Email 内置 Graph 客户端将 Microsoft 365 邮件发送集成到 .NET 应用的简便性。

发送邮件示例代码 - C#

var client = GraphClient.GetClient(authProvider);
var message = new MailMessage(...);
client.Send(message);

工作原理

Microsoft Graph 是一个 RESTful Web API,允许访问 Microsoft 365 服务,包括发送电子邮件的功能。通过 Microsoft Graph 发送邮件时,使用 HTTP POST 向 /sendMail 端点发送请求,并附带邮件负载。该负载通常是一个 JSON 对象,包含邮件内容(收件人、主题、正文等)及任何附件。

MS Graph 接收到请求后会进行处理并返回 HTTP 状态码。成功发送时返回 202 Accepted,表示消息已加入发送队列。处理这些响应可帮助开发者确保通信成功或排查可能出现的问题。

对 Microsoft Graph 请求进行身份验证

调用 Microsoft Graph 并非仅仅发送 HTTP 请求——您必须先处理身份验证。Graph API 受 Azure Active Directory(Azure AD)保护,这意味着在发出任何请求之前必须获取访问令牌。该令牌根据身份验证过程中授予的权限指定您允许执行的操作。

要进行身份验证,首先需要在 Azure AD 中设置应用注册,定义所需权限,然后使用相应的 OAuth 流程请求访问令牌。获取令牌后,将其包含在 Authorization 请求头部。

Aspose.Email for .NET 简化了获取和管理访问令牌的过程,确保应用能够安全地与 Microsoft Graph 交互。通过实现其 ITokenProvider 接口,开发者可以高效检索身份验证所需的 OAuth 2.0 令牌。完成 Azure 门户中的应用注册并授予必要的权限(如 Mail.Send)后,开发者即可使用库功能将丰富的邮件功能集成到应用中。

从以下几个关键步骤开始:

  1. 在 Azure 门户中注册您的应用 并授予诸如 Mail.Send 用于发送电子邮件。
  2. 获取访问令牌:实现 ITokenProvider Aspose.Email for .NET 的接口,以检索身份验证所需的 OAuth 2.0 令牌。
  3. 通过以下方式安装 Aspose.Email for .NET NuGet 或通过下载其 DLL 文件。

按照这些步骤操作,您就可以顺利开始编写代码。

了解 Microsoft Graph 的请求与响应

请求:消息主题、正文、收件人详情和附件等数据采用 JSON 格式组织。当调用 Send 方法时,这些数据会序列化并作为 POST 请求发送至 Microsoft Graph 的 /sendMail 端点。

响应:Graph API 的响应以状态码返回。202 Accepted 表示传输成功,而 401 Unauthorized、403 Forbidden 等错误码可能表明身份验证或权限存在问题。

.NET 库提供了在与 Microsoft Graph 等外部服务交互时用于构建、发送请求和解析响应的内置功能。这些功能让开发者能够简化与 Microsoft 365 服务(如 Outlook、Calendar、Contacts)的通信,无需手动编写 HTTP 请求或解析原始 JSON 响应。

  1. 构建请求:Aspose.Email 通过提供特定的类和方法简化了请求的创建,抽象了请求构造的复杂性。例如,开发者可以通过直观的 API 与邮件、日历和联系人交互,而无需手动构建所需的 Graph 请求。

  2. 发送请求:该库内置了直接向 Microsoft Graph 等服务发送请求的机制。无需手动处理身份验证和 HTTP 方法,Aspose.Email 在幕后完成这些步骤。它会添加必要的头信息,如授权令牌和内容类型,确保请求的格式符合与 Microsoft 服务的成功通信要求。

  3. 解析响应:支持响应解析后,它可以将原始 JSON 或 XML 响应转换为结构化对象,如 MailMessage、CalendarEvent 或 Contact。这消除了开发者直接处理 JSON 解析的需求。解析后的数据可立即在应用中使用,使集成过程更加流畅高效。

这些功能使开发者能够更多关注业务逻辑,而不是管理与邮件服务交互的底层复杂性。

完整的 C# 代码示例:使用 OAuth2 和 Aspose.Email 发送电子邮件

以下示例展示了通过 Aspose.Email for .NET 使用 Graph API 发送电子邮件的完整流程。仅需几行代码即可生成 OAuth2 访问令牌、初始化 Graph 客户端、编写消息并发送:

  1. 创建以下类的实例 IGraphClient 通过调用 GetClient 方法。
  2. 初始化一个 MailMessage 类发送消息,设置其属性。
  3. 使用 发送 库的方法。

完整的 OAuth2 与 Microsoft Graph 集成示例

using Aspose.Email;
using Aspose.Email.Clients.Graph;

// Generate the access token
AccessTokenProvider tokenProvider = new AccessTokenProvider();

// Create a Graph client
IGraphClient client = GraphClient.GetClient(tokenProvider, "tenant ID");

// Create a new message
var eml = new MailMessage(fromAddress, toAddress, subject, body);
   
// Send message
client.Send(eml);

发送带附件的电子邮件

使用 Aspose.Email for .NET 库通过 Microsoft Graph 发送带附件的电子邮件既简单又高效。附件可以是任何文件类型,如文档、图片或 PDF,并随邮件一起发送。这对于通过 .NET 应用直接共享报告、演示文稿或其他重要文档等资源尤为有用。

在下面的代码片段中,附件在发送邮件之前被添加到 MailMessage 对象:

发送邮件示例代码 - C#

// Add attachments to the message
Attachment attachment = new Attachment("path_to_attachment");
eml.Attachments.Add(attachment);

附件的处理方式

  1. 加载附件:附件从指定的文件路径("path_to_attachment")加载,可能是本地文件或流。 Attachment 类允许您将任何文件类型添加为附件,具备高度灵活性。
  2. 添加到邮件:创建附件后,使用 Attachments.Add() 方法。该方法将文件追加到 MailMessage 对象的附件集合会在通过 MS Graph 发送时自动包含。
  3. 发送邮件:附件添加到消息后, 发送 来自 IGraphClient 接口会将所有附件文件一起发送邮件。

处理多个附件

您可以通过对每个文件重复此过程轻松添加多个附件。以下是如何添加多个文件的示例:

Attachment attachment1 = new Attachment("file1.pdf");
Attachment attachment2 = new Attachment("image.png");
eml.Attachments.Add(attachment1);
eml.Attachments.Add(attachment2);

附件大小限制

需要注意的是,Microsoft Graph 对邮件大小有严格限制。电子邮件(含附件)的总大小不得超过 25 MB。如果需要发送更大的文件,请考虑将其上传至云存储服务(如 OneDrive),并发送文件链接。

想了解更多?探索完整的 Microsoft Graph 支持

Aspose.Email for .NET 通过 Graph API 提供了扩展的 Microsoft 365 集成,您还可以:

  • 管理文件夹、消息和草稿

  • 处理附件和类别

  • 处理联系人、日历事件、笔记本等

完整探索 Microsoft Graph 功能.

安装 .NET API

花一点时间将库安装到项目中,使用 Aspose.Email for .NET 开始构建安全、可扩展的 Microsoft 365 邮件解决方案。请选择最便捷的方式:

  • 使用 NuGet 包管理器
  • 引用所需的 程序集
  • 或者直接在 Visual Studio 的 NuGet 包管理器控制台中运行以下命令:

命令


PM> Install-Package Aspose.Email