Работа с сообщениями и фильтрами Gmail

Начало работы с IGmailClient

Aspose.Email для .NET предоставляет надёжную поддержку взаимодействия с Gmail через IGmailClient интерфейс. Вы можете управлять сообщениями и фильтрами в почтовом ящике Gmail — включая вывод списка, получение, отправку, добавление и удаление писем, а также управление пользовательскими фильтрами для автоматической классификации.

Для использования функций Gmail необходимо инициализировать экземпляр IGmailClient, используя ваш clientId, clientSecret, refreshToken и целевой адрес электронной почты. Все примеры ниже предполагают эту настройку:

using (IGmailClient client = GmailClient.GetInstance(clientId, clientSecret, refreshToken, email))
{
    // Work with messages or filters
}

Список сообщений в почтовом ящике Gmail

Получить все сообщения из ящика в облегчённом виде GmailMessageInfo объекты. Ниже пример кода, демонстрирующий, как получить список доступных сообщений в почтовом ящике Gmail без загрузки полного содержимого:

var messages = client.ListMessages();

Получение и удаление сообщений Gmail

Ниже пример кода, демонстрирующий, как читать и удалять сообщения из Gmail, используя их уникальные идентификаторы:

  1. Использовать client.ListMessages() чтобы получить список сообщений.
  2. Настройте цикл for для итерации по первым трем сообщениям.
  3. Внутри цикла получайте каждое сообщение, используя client.FetchMessage(messages[i].Id).
  4. Выведите тему и тело полученного сообщения.
  5. Вызвать client.DeleteMessage(messages[i].Id, true) для удаления сообщения и перемещения его в корзину.
  6. Подтвердите удаление с помощью сообщения.
var messages = client.ListMessages();

for (int i = 0; i < 3; i++)
{
    var msg = client.FetchMessage(messages[i].Id);
    Console.WriteLine($"Message {i + 1}: Subject - {msg.Subject}, Body - {msg.Body}");

    client.DeleteMessage(messages[i].Id, true);
    Console.WriteLine($"Message {i + 1} moved to trash.");
}

Отправка сообщения через Gmail

Создайте и отправьте письмо, включая вложения, с помощью метода SendMessage(). Пример кода ниже демонстрирует, как отправить письмо через Gmail с вложением:

MailMessage message = new MailMessage("sender@example.com", "recipient@example.com", "Weekly Report", "Attached is the weekly report.");

string attachmentPath = Path.Combine(TestUtil.GetTestDataPath(), "report.pdf");
message.Attachments.Add(new Attachment(attachmentPath));

string messageId = client.SendMessage(message);
Console.WriteLine($"Message with attachment sent! ID: {messageId}");