Làm việc với Tin nhắn và Bộ lọc Gmail

Bắt đầu với IGmailClient

Aspose.Email cho .NET cung cấp hỗ trợ mạnh mẽ để tương tác với Gmail qua IGmailClient giao diện. Bạn có thể quản lý tin nhắn và bộ lọc trong hộp thư Gmail — bao gồm liệt kê, lấy, gửi, thêm và xóa email, cũng như quản lý các bộ lọc tùy chỉnh để phân loại tự động.

Để sử dụng các tính năng Gmail, bạn cần khởi tạo một thể hiện IGmailClient bằng clientId, clientSecret, refreshToken và địa chỉ email mục tiêu của bạn. Tất cả các ví dụ dưới đây giả định cấu hình này:

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

Liệt kê Tin nhắn trong Hộp thư Gmail

Lấy tất cả tin nhắn từ hộp thư dưới dạng nhẹ GmailMessageInfo đối tượng. Đoạn mã mẫu dưới đây trình bày cách lấy danh sách các tin nhắn có sẵn trong hộp thư Gmail mà không tải toàn bộ nội dung:

var messages = client.ListMessages();

Lấy và Xóa Tin nhắn Gmail

Đoạn mã mẫu dưới đây minh họa cách đọc và xóa tin nhắn từ Gmail bằng cách sử dụng các định danh duy nhất của chúng:

  1. Sử dụng client.ListMessages() để lấy danh sách các tin nhắn.
  2. Thiết lập vòng lặp for để lặp qua ba tin nhắn đầu tiên.
  3. Trong vòng lặp, lấy mỗi tin nhắn bằng cách sử dụng client.FetchMessage(messages[i].Id).
  4. In tiêu đề và nội dung của tin nhắn đã lấy.
  5. Gọi client.DeleteMessage(messages[i].Id, true) để xóa tin nhắn và chuyển nó vào thùng rác.
  6. Xác nhận xóa với tin nhắn.
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.");
}

Gửi Tin nhắn qua Gmail

Soạn và gửi email, bao gồm cả tệp đính kèm bằng phương thức SendMessage(). Đoạn mã mẫu dưới đây minh họa cách gửi email qua Gmail kèm tệp đính kèm:

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}");