**הגדרה, שינוי והסרה של דגלי הודעה בשרת IMAP**

הגדרה/שינוי של דגלי הודעה

ניתן לשנות דגלי הודעה על‑ידי הגדרת חדשים בעזרת ה‑ ChangeMessageFlags() מתודה. מתודה זו מקבלת שני פרמטרים.

  1. מספר הרצף של הודעה או מזהה ייחודי שלה.
  2. MessageFlag.

הדגלים הבאים ניתנים להגדרה:

הקטע הקוד הבא מציג כיצד לשנות דגלי הודעה על שרת IMAP עם Aspose.Email.

// Mark the message as read
client.ChangeMessageFlags(1, ImapMessageFlags.IsRead);

הסר דגלי הודעה

דגלי הודעה ניתן גם להסיר באמצעות ה RemoveMessageFlags() מתודה. השימוש דומה לזה של ChangeMessageFlags() מתודה. היא מקבלת מספר סדר או מזהה הודעה ייחודי ו‑ MessageFlag. הקטע הקוד הבא מציג כיצד להסיר דגלי הודעה.

// Remove the message flag
client.RemoveMessageFlags(1, ImapMessageFlags.IsRead);

הגדרת דגלים מותאמים

ניתן גם להגדיר דגלים מותאמים אישית להודעה באמצעות ה ImapClient של ה‑API. ImapClient AddMessageFlags מספקת את היכולת להגדיר דגלים מותאמים אישית על הודעות.

// Create a message
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message");

//Append the message to mailbox
string uid = client.AppendMessage(ImapFolderInfo.InBox, message);

//Add custom flags to the added messge
client.AddMessageFlags(uid, ImapMessageFlags.Keyword("custom1") | ImapMessageFlags.Keyword("custom1_0"));

//Retreive the messages for checking the presence of custom flag
client.SelectFolder(ImapFolderInfo.InBox);

ImapMessageInfoCollection messageInfos = client.ListMessages();
foreach (var inf in messageInfos)
{
    ImapMessageFlags[] flags = inf.Flags.Split();

    if (inf.ContainsKeyword("custom1"))
        Console.WriteLine("Keyword found");
}