العمل مع رسائل 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}");