کار با پیام‌ها و فیلترهای 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}");