Sample code for 30+ languages & platforms
Java

Store One or More Flags on a Single Message

See more IMAP Examples

Demonstrates the Chilkat Imap.StoreFlags method, which sets or clears one or more flags on a single message identified by ID. The first argument is the message ID, the second (bUid) selects UID vs sequence number, the third is a space-separated list of flag names, and the fourth is the value (1 to set, 0 to clear). This example applies the Seen and Flagged flags to one message by UID.

Background: StoreFlags is the single-message counterpart to SetFlags and lets you change several flags at once by listing them space-separated (without leading backslashes). Because the ID can be either a UID or a sequence number, the bUid argument must match how you obtained it — a UID from a UID search, or a sequence number from a sequence-based operation. UIDs are the safer choice since they remain valid as the mailbox changes.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Imap;
import com.chilkatsoft.chilkat2.MessageSet;

public class ChilkatExample {

    public static void main(String[] args) {
        // Demonstrates the Imap.StoreFlags method, which sets or clears one or more flags on a single
        // message identified by ID.  The 1st argument is the message ID, the 2nd (bUid) selects UID
        // vs sequence number, the 3rd is a space-separated list of flag names, and the 4th is the
        // value (1 to set, 0 to clear).

        Imap imap = new Imap();

        imap.setSsl(true);
        imap.setPort(993);

        try {
            imap.connect("imap.example.com");

            imap.login("user@example.com", "myPassword");

            imap.selectMailbox("Inbox");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Get the UIDs of all messages.
        MessageSet msgSet = new MessageSet();
        try {
            imap.queryMbx("ALL", true, msgSet);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        if (msgSet.getCount() > 0) {
            // Apply the Seen and Flagged flags to the first message.  bUid is true because the ID
            // came from a UID search.
            long uid = msgSet.getId(0);
            try {
                imap.storeFlags(uid, true, "Seen Flagged", 1);
            } catch (ChilkatException e) {
                System.out.println(e.getLastErrorText());
                return;
            }

            System.out.println("Updated flags on UID " + uid);
        }

        try {
            imap.disconnect();
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }
    }
}