Как отправлять письма с помощью Microsoft 365 Graph API в .NET‑приложениях
Интегрируйте безопасные возможности отправки почты в ваши .NET‑приложения с поддержкой составления сообщений, аутентификации OAuth2 и вложений файлов.
Скачать бесплатную пробную версиюОтправка письма на C# с помощью Microsoft 365 Graph API
Интеграция Microsoft Graph API в .NET‑приложения позволяет разработчикам упростить процесс отправки сообщений через сервисы Microsoft 365. Aspose.Email для .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 с образцами кода для быстрой реализации.
Пример кода
Оцените простоту интеграции отправки электронной почты Microsoft 365 в ваше .NET‑приложение с встроенным клиентом Graph от Aspose.Email.
Пример кода отправки письма — C#
var client = GraphClient.GetClient(authProvider);
var message = new MailMessage(...);
client.Send(message);
Как это работает
Microsoft Graph — это RESTful веб‑API, предоставляющий доступ к сервисам Microsoft 365, включая возможность отправки писем. При отправке писем через Microsoft Graph запросы отправляются методом HTTP POST к конечной точке /sendMail с нагрузкой сообщения. Эта нагрузка обычно представляет собой JSON‑объект, содержащий содержание сообщения (получатели, тема, тело и т.д.) и вложенные файлы.
После получения запроса MS Graph обрабатывает его и возвращает HTTP‑статус. При успешной отправке возвращается ответ 202 Accepted, указывающий, что сообщение поставлено в очередь на доставку. Обработка этих ответов позволяет разработчикам обеспечить успешную коммуникацию или отлаживать возникающие проблемы.
Аутентификация запросов Microsoft Graph
Вызов Microsoft Graph не так прост, как отправка HTTP‑запроса — сначала нужно выполнить аутентификацию. API Graph защищён Azure Active Directory (Azure AD), поэтому перед выполнением любого запроса необходимо получить токен доступа. Этот токен определяет, какие операции вам разрешено выполнять, на основе предоставленных разрешений.
Для аутентификации сначала необходимо создать регистрацию приложения в Azure AD, определить требуемые разрешения и запросить токен доступа, используя соответствующий поток OAuth. После получения токена включите его в Authorization заголовок ваших запросов.
Aspose.Email for .NET упрощает процесс получения и управления токеном доступа, гарантируя безопасное взаимодействие приложения с Microsoft Graph. Реализуя её ITokenProvider интерфейс, разработчики могут эффективно получить токен OAuth 2.0, необходимый для аутентификации. После настройки регистрации приложения в портале Azure и предоставления необходимых разрешений, например Mail.Send, разработчики могут использовать функции библиотеки для интеграции расширенных возможностей электронной почты в свои приложения.
Начните с нескольких основных шагов:
- Зарегистрируйте приложение в портале Azure и предоставьте разрешения, такие как
Mail.Sendдля отправки писем. - Получить токен доступа: реализуйте ITokenProvider интерфейс Aspose.Email для .NET, чтобы получить токен OAuth 2.0, необходимый для аутентификации.
- Установите Aspose.Email для .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‑ответов.
Формирование запросов: Aspose.Email упрощает создание запросов, предоставляя специальные классы и методы, абстрагирующие сложность формирования запросов. Например, разработчики могут работать с письмами, календарями и контактами через интуитивные API без ручного составления необходимых запросов Graph.
Отправка запросов: Библиотека включает встроенные механизмы отправки запросов напрямую к сервисам, таким как Microsoft Graph. Вместо ручного управления аутентификацией и методами HTTP, Aspose.Email обрабатывает процесс за кулисами. Это включает добавление необходимых заголовков, таких как токены авторизации и типы контента, гарантируя правильное оформление запросов для успешного взаимодействия с сервисами Microsoft.
Разбор ответов: С поддержкой разбора ответов он может преобразовывать сырые JSON или XML ответы в структурированные объекты, такие как MailMessage, CalendarEvent или Contact. Это устраняет необходимость разработки собственного парсинга JSON. Полученные данные могут сразу использоваться в приложении, делая процесс интеграции более гладким и эффективным.
Эти возможности позволяют разработчикам сосредоточиться больше на бизнес‑логике, а не на управлении сложностями взаимодействия с почтовыми сервисами.
Полный пример кода C# для отправки писем с OAuth2 и Aspose.Email
Следующий пример демонстрирует полный процесс отправки письма с использованием Graph API через Aspose.Email для .NET. Несколько строк кода позволяют сгенерировать токен доступа OAuth2, инициализировать клиент Graph, составить сообщение и отправить его:
- Создайте экземпляр IGraphClient вызвав GetClient метод.
- Инициализируйте объект eml типа MailMessage класс, установите его свойства.
- Отправьте сообщение, используя Отправить метод библиотеки.
Полный пример интеграции 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);
Отправка писем с вложениями
Отправка писем с вложениями через Microsoft Graph проста и эффективна с библиотекой Aspose.Email для .NET. Вложения могут быть любого типа файлов, таких как документы, изображения или PDF, которые отправляются вместе с письмом. Это особенно полезно для обмена ресурсами, например, отчётами, презентациями или другими важными документами напрямую из вашего .NET‑приложения.
В следующем фрагменте кода вложения добавляются в объект MailMessage перед отправкой письма:
Пример кода отправки письма — C#
// Add attachments to the message
Attachment attachment = new Attachment("path_to_attachment");
eml.Attachments.Add(attachment);
Как обрабатываются вложения
- Загрузка вложений: Вложение загружается из указанного пути к файлу ("path_to_attachment"), который может быть локальным файлом или потоком. Вложение класс позволяет добавить любой тип файла в качестве вложения, обеспечивая большую гибкость.
- Добавление во письмо: После создания вложения оно добавляется в сообщение электронной почты с помощью Attachments.Add() метод. Этот метод добавляет файл в MailMessage коллекция вложений объекта, которая автоматически включается при отправке сообщения через MS Graph.
- Отправка письма: После добавления вложений в сообщение, Отправить метод из IGraphClient интерфейс отправляет письмо со всеми вложенными файлами.
Работа с несколькими вложениями
Вы можете легко добавить несколько вложений, повторяя процесс для каждого файла. Вот как прикрепить более одного файла:
Attachment attachment1 = new Attachment("file1.pdf");
Attachment attachment2 = new Attachment("image.png");
eml.Attachments.Add(attachment1);
eml.Attachments.Add(attachment2);
Ограничения размера вложений
Важно отметить, что Microsoft Graph накладывает ограничения на размер писем. Общий размер письма, включая вложения, не должен превышать 25 МБ. Если нужно отправить более крупные файлы, рассмотрите возможность загрузки их в облачное хранилище (например, OneDrive) и отправки ссылки на файл.
Хотите больше? Исследуйте полную поддержку Microsoft Graph
Aspose.Email for .NET предлагает расширенную интеграцию с Microsoft 365 через Graph API. Вы также можете:
Управляйте папками, сообщениями и черновиками
Работайте с вложениями и категориями
Управляйте контактами, событиями календаря, заметками и многим другим
Исследуйте полностью Возможности Microsoft Graph.
Установить .NET API
Потратьте минуту, чтобы установить библиотеку в ваш проект и начать создавать безопасные, масштабируемые решения электронной почты Microsoft 365 с Aspose.Email для .NET. Выберите наиболее удобный способ:
- Использовать NuGet Менеджер пакетов
- Ссылка на требуемый сборки
- Или просто используйте следующую команду в окне Package Manager Console в Visual Studio:
Команда
PM> Install-Package Aspose.Email