IMAP - Internet Message Access Protocol

What is IMAP?

IMAP stands for Internet Message Access Protocol. It’s a standard email protocol used by email clients to retrieve messages from a mail server.

Why is IMAP useful?

  • Access your email from multiple devices (e.g., phone, laptop, tablet).

  • Keep your emails synchronized across all devices.

  • Store emails on the server, so they’re not lost if your device is damaged or lost.

  • Organize emails into folders on the server.

How it works?

  • You open your email app (like Outlook, Gmail, Thunderbird).

  • The app connects to the mail server using IMAP.

  • It displays a copy of your emails stored on the server.

  • When you read, delete, or move an email, the change is made on the server.

  • Any other device connected to the same account sees the updated status.

Where is IMAP used?

  • Email clients (e.g., Apple Mail, Microsoft Outlook, Mozilla Thunderbird).

  • Webmail services (e.g., Gmail, Yahoo Mail, Outlook.com).

  • Corporate email systems that need centralized email access.

Which OSI layer does this protocol belong to?

  • IMAP is a protocol used by applications (like email clients) to access and manage email on a server.

  • It does not deal with how data is transmitted, but rather what data is transmitted and how it’s interpreted by the application.

  • It relies on lower layers (like TCP at Layer 4) to handle the actual data transport.

  • Therefore, IMAP belongs to the Application Layer (Layer 7) of the OSI model.

Does IMAP support email folders?

Yes. IMAP lets users: * Create custom folders. * Move, copy, and delete messages. * Keep folder structure synced across devices.

What email clients support IMAP?

All major ones: * Gmail. * Outlook / Microsoft 365. * Mobile Mail apps (iOS, Android).

What are the limitations of IMAP?

  • Depends on server storage capacity.

  • Slightly more bandwidth use than POP3.

  • Offline access limited to cached emails unless explicitly downloaded.

Does IMAP download full emails or just headers?

By default, only headers are downloaded. Full emails (body and attachments) are fetched when opened.

What are some applications that use IMAP?

  • Email Clients (Desktop-Based).

  • Mobile Email Apps.

  • Webmail Interfaces.

  • Server Software with IMAP Support.

What is the working flow of IMAP?

Email is Received by Mail Server * An email arrives at your mail server (e.g., Gmail, Outlook). * It is stored on the server, not downloaded.

Email Client Connects to IMAP Server * You open your email app (e.g., Outlook, Thunderbird, Gmail app). * The client connects to the IMAP server using: * Port 993 (SSL/TLS). * Or port 143 (STARTTLS).

  • User Authenticates

  • The email client logs in with:

  • Username (email address). * Password.

  • Email Headers Are Fetched

  • IMAP downloads only email headers first (subject, sender, date).

  • The full message is not yet downloaded.

  • User Views or Opens an Email

  • When you click on an email, the client requests the full content from the server.

  • Body and attachments are downloaded temporarily.

  • Actions Are Synced with Server

  • Any action you take (read, delete, move, mark as unread) is sent to the server.

  • This keeps everything synced across devices (PC, mobile, webmail).

  • Folders Are Managed on Server

  • IMAP allows the client to access:

  • Inbox, Sent, Drafts, Trash.

  • Custom folders (e.g., “Work” or “Receipts”)

  • You can create/move folders and emails, and changes reflect on all devices.

Client Disconnects (Gracefully) * Once you’re done, the client may close the session using LOGOUT.

Is IMAP suitable for mobile devices?

Yes. IMAP is ideal for syncing mail between desktop, web, and mobile clients.

  • In this section, you are going to learn

  • Terminology

  • Version Info

S.No

Version

RFC

Year

contribution/core ideas

1

IMAP/2.0

RFC 1064 (Obsolete)

1998

Early version; introduced basic remote mailbox access.

2

IMAP/3.0

RFC 1203 (Obsolete)

1991

Improved command structure and mailbox handling.

3

IMAP4/1.0

RFC 1730 (Obsolete)

1996

First version of IMAP4; introduced more robust mailbox management.

4

IMAP4rev1/1.1

RFC 3501 (Obsoleted by RFC 9051)

2003

Widely implemented version; added UID-based access, flags, and better synchronization.

5

IMAP4rev2/2.0

RFC 9051

2021

Current standard; updates and consolidates previous extensions, improves internationalization and security.

  • setup

  • setup

IMAP COMMAND LINE Packet

S.No

Packet Components

Description

Size(Bytes)

1

Command Line

Text-based command sent by the client to the server.

Variable (typically < 512)

Tag

Unique identifier for the command (e.g., A001, B002).

410

Command Keyword

IMAP command like LOGIN, SELECT, FETCH, LOGOUT.

410

Arguments

Parameters like mailbox name, message ID, flags, etc.

Variable (10100+)

CRLF

Carriage Return + Line Feed to terminate the command.

2

IMAP RESPONSE LINE Packet

2

Response Line

Server’s reply to the command or untagged status update.

Variable (typically < 512)

Tag

Echoed tag from client or * for untagged responses.

110

Status

Response status: OK, NO, BAD, PREAUTH, BYE.

25

Response Text

Human-readable message or structured data.

20500+

CRLF

Carriage Return + Line Feed.

2

IMAP LITERAL DATA BLOCK Packet

3

Literal Data Block

Optional: actual email content (headers, body, attachments).

Varies (KBs to MBs)

Literal Size

Size of literal data in {} notation (e.g., {342}).

310

Data Content

The actual content (email body, headers, etc.).

Varies

CRLF

Carriage Return + Line Feed.

2

S.No

Use Case

Description

1

Multi-device Email Access

Allows users to access the same mailbox from multiple devices.

2

Centralized Email Storage

Emails are stored on the server, not locally, ensuring data is not lost if a

device fails.

3

Real-time Synchronization

Any action is instantly reflected across all connected devices.

4

Folder Management

Users can create, rename, and delete folders on the server to organize emails.

5

Efficient Email Retrieval

Only headers or specific parts of emails can be fetched, saving bandwidth.

6

Shared Mailboxes

Multiple users can access and manage a shared mailbox

7

Offline Access with Sync

Emails can be cached locally for offline use and synced when reconnected.

8

Email Backup and Archiving

Since emails are stored on the server, they can be backed up or archived

centrally.

9

Webmail Integration

IMAP is used by webmail services to sync with desktop/mobile clients.

10

Corporate Email Systems

Used in enterprise environments for secure, scalable, and synchronized

email access.

S.No

IMAP features

Description

1

Remote Email Access

Emails are stored on the server and accessed remotely without downloading

them.

2

Multi-device Synchronization

Keeps emails and folders synchronized across all devices.

3

Selective Downloading

Allows downloading only headers or specific parts of emails

4

Folder Management

Supports creating, renaming, and deleting folders on the server.

5

Message Flags

Supports flags like Seen, Answered, Flagged, Deleted, Draft, etc

6

Concurrent Access

Multiple clients can access the same mailbox simultaneously.

7

Offline Access Support

Clients can cache emails locally for offline viewing and sync later.

8

Search Capability

Allows searching emails on the server using keywords or filters.

9

Partial Fetch

Fetch only parts of a message (e.g., just the header or body).

10

Server-side Storage

Emails remain on the server, reducing local storage usage and enabling backups.

Remote Email Access - Testcases

S.No

Test Case

Description

Expected Result

1

Valid IMAP Login

Login with correct credentials

Authentication successful

2

Invalid IMAP Login

Login with wrong credentials

Authentication fails

3

Access Inbox Remotely

Access inbox from remote client

Inbox emails displayed

4

Access Sent Folder

Access sent items remotely

Sent emails displayed

5

Access Custom Folder

Access user-created folder

Folder contents displayed

6

Access from Multiple Devices

Login from multiple devices

Emails synced across devices

7

Access via Webmail

Access IMAP via webmail

Emails accessible

8

Access via Mobile App

Access IMAP via mobile client

Emails synced and accessible

9

Access via Desktop Client

Access IMAP via Outlook/Thunderbird

Emails synced and accessible

10

Folder Synchronization

Sync folders across devices

Folder structure consistent

11

Email Read Status Sync

Mark email as read on one device

Status updated on all devices

12

Email Flag Sync

Flag email on one device

Flag visible on all devices

13

Email Deletion Sync

Delete email on one device

Email deleted across all devices

14

Email Move Sync

Move email to folder remotely

Email appears in new folder

15

Email Draft Sync

Save draft remotely

Draft accessible from other devices

16

Email Send Sync

Send email from one device

Appears in Sent folder on all devices

17

Folder Creation Remotely

Create folder from remote client

Folder appears on server

18

Folder Rename Remotely

Rename folder remotely

Folder name updated everywhere

19

Folder Deletion Remotely

Delete folder remotely

Folder removed from all clients

20

Access with SSL

Connect using IMAP over SSL

Secure connection established

21

Access with TLS

Connect using STARTTLS

Secure connection established

22

Access with Plain Text

Connect without encryption

Warning or blocked

23

Access with VPN

Connect via VPN

Emails accessible securely

24

Access with Proxy

Connect via proxy server

Emails accessible

25

Access with IPv6

Connect using IPv6

Connection successful

26

Access with Slow Network

Simulate slow connection

Emails load with delay

27

Access with Intermittent Network

Simulate network drop

Session resumes or reconnects

28

Access with Large Mailbox

Mailbox with >10,000 emails

Emails accessible with pagination

29

Access with Large Attachments

Emails with large files

Attachments downloadable

30

Access with HTML Emails

HTML content in emails

Rendered correctly

31

Access with Inline Images

Emails with embedded images

Images displayed

32

Access with External Links

Emails with external content

Links preserved

33

Access with Unicode Content

Emails with emojis or non-Latin text

Displayed correctly

34

Access with Corrupt Email

Email with malformed headers

Error handled gracefully

35

Access with Spam Folder

Access spam/junk folder

Emails displayed

36

Access with Archive Folder

Access archived emails

Emails displayed

37

Access with Quota Limit

Mailbox near quota

Warning shown

38

Access with Expired Session

Session timeout

Re-authentication required

39

Access with Session Persistence

Maintain session across restarts

Session resumes or reconnects

40

Access with IMAP IDLE

Use IDLE for real-time updates

New emails pushed instantly

41

Access with IMAP SEARCH

Search emails remotely

Matching emails returned

42

Access with IMAP SORT

Sort emails by date/subject

Sorted list displayed

43

Access with IMAP THREAD

View threaded conversations

Emails grouped by thread

44

Access with IMAP EXPUNGE

Permanently delete emails

Emails removed from server

45

Access with IMAP COPY

Copy email to another folder

Email appears in both folders

46

Access with IMAP MOVE

Move email to another folder

Email moved successfully

47

Access with IMAP FETCH

Fetch specific email parts

Requested parts retrieved

48

Access with IMAP APPEND

Upload email to server

Email added to folder

49

Access with IMAP CAPABILITY

Query server capabilities

Supported features listed

50

Access with IMAP LOGOUT

End session remotely

Session closed cleanly

Multi Device Synchronization - Testcases

S.No

Test Case

Description

Expected Result

1

IMAP Connection Establishment

Establish IMAP connection from multiple devices

Connection established successfully

2

IMAP Authentication

Authenticate user across devices

Authentication successful

3

Folder Synchronization

Sync folders across devices

Folders synchronized

4

Message Synchronization

Sync messages across devices

Messages synchronized

5

Read Status Sync

Sync read/unread status across devices

Status synchronized

6

Flag Synchronization

Sync flags (e.g., starred, important)

Flags synchronized

7

Message Deletion Sync

Delete message on one device and reflect on others

Message deleted across all devices

8

Message Move Sync

Move message to folder and reflect on all devices

Message moved across all devices

9

Draft Synchronization

Save draft and access from another device

Draft available on all devices

10

Sent Items Sync

Sync sent messages across devices

Sent messages synchronized

11

IMAP IDLE Support

Maintain real-time sync using IMAP IDLE

Real-time updates received

12

Multiple Session Handling

Handle multiple IMAP sessions simultaneously

Sessions managed correctly

13

Conflict Resolution

Resolve sync conflicts between devices

Conflict resolved gracefully

14

Offline Changes Sync

Sync changes made offline once online

Offline changes synchronized

15

Attachment Sync

Sync attachments across devices

Attachments available on all devices

16

Folder Creation Sync

Create folder on one device and reflect on others

Folder created across all devices

17

Folder Rename Sync

Rename folder and reflect on all devices

Folder renamed across all devices

18

Folder Deletion Sync

Delete folder and reflect on all devices

Folder deleted across all devices

19

Message Expunge Sync

Expunge deleted messages across devices

Messages expunged

20

IMAP Server Compatibility

Test sync with various IMAP servers

Compatible with all tested servers

21

IMAP Client Compatibility

Test sync with various IMAP clients

Compatible with all tested clients

22

Sync Performance Under Load

Test sync performance with large mailbox

Sync performance acceptable

23

Sync Latency Measurement

Measure latency of sync across devices

Latency within acceptable limits

24

Sync Reliability

Ensure reliable sync across devices

Sync consistent and reliable

25

Sync Error Handling

Handle sync errors gracefully

Errors logged and resolved

26

IMAP Protocol Compliance

Ensure compliance with IMAP RFCs

Protocol compliance verified

27

Sync During Network Switch

Maintain sync during network changes

Sync uninterrupted

28

Sync During Device Sleep

Resume sync after device wakes

Sync resumes successfully

29

Sync During App Restart

Resume sync after app restart

Sync resumes successfully

30

Sync During Server Restart

Resume sync after server restart

Sync resumes successfully

31

Sync During Device Reboot

Resume sync after device reboot

Sync resumes successfully

32

Sync During Email Migration

Maintain sync during email migration

Sync uninterrupted

33

Sync During Backup Restore

Resume sync after backup restore

Sync resumes successfully

34

Sync During Account Change

Maintain sync after account settings change

Sync resumes successfully

35

Sync During Password Change

Resume sync after password update

Sync resumes successfully

36

Sync During Security Update

Maintain sync after security patch

Sync uninterrupted

37

Sync During App Update

Resume sync after app update

Sync resumes successfully

38

Sync During OS Update

Resume sync after OS update

Sync resumes successfully

39

Sync During Device Switch

Maintain sync when switching devices

Sync resumes on new device

40

Sync During Account Recovery

Resume sync after account recovery

Sync resumes successfully

41

Sync During IMAP Session Timeout

Resume sync after session timeout

Sync resumes successfully

42

Sync During Server Downtime

Resume sync after server downtime

Sync resumes successfully

43

Sync During High Latency

Maintain sync under high latency

Sync performance acceptable

44

Sync During Packet Loss

Maintain sync during packet loss

Sync recovers gracefully

45

Sync During VPN Use

Maintain sync while using VPN

Sync uninterrupted

46

Sync During Proxy Use

Maintain sync while using proxy

Sync uninterrupted

47

Sync During Firewall Restrictions

Maintain sync under firewall restrictions

Sync performance acceptable

48

Sync During Antivirus Scan

Maintain sync during antivirus scan

Sync uninterrupted

49

Sync During Battery Saver Mode

Maintain sync in battery saver mode

Sync performance acceptable

50

Sync User Experience Evaluation

Evaluate user experience during multi-device sync

Seamless experience reported

Selective Downloading - Testcases

S.No

Test Case

Description

Expected Result

1

Header-Only Download

Download only email headers

Headers downloaded successfully

2

Partial Message Download

Download partial content of large emails

Partial content retrieved

3

Attachment Skipping

Skip downloading attachments

Email downloaded without attachments

4

Download by Date Range

Download emails from a specific date range

Only selected emails downloaded

5

Download by Sender

Download emails from specific sender

Emails from sender downloaded

6

Download by Subject Keyword

Download emails with specific subject keywords

Matching emails downloaded

7

Download by Folder

Download emails from selected folders

Folder-specific emails downloaded

8

Download by Size Limit

Download emails below a certain size

Only small emails downloaded

9

Download by Priority Flag

Download only flagged or important emails

Flagged emails downloaded

10

Download by Unread Status

Download only unread emails

Unread emails downloaded

11

Download by Read Status

Download only read emails

Read emails downloaded

12

Download by Label

Download emails with specific labels

Labeled emails downloaded

13

Download by Thread

Download entire conversation thread

Thread downloaded completely

14

Download by UID

Download email using unique identifier

Email with UID downloaded

15

Download by Message Sequence

Download using message sequence number

Message downloaded correctly

16

Download by MIME Type

Download only plain text or HTML parts

Selected MIME parts downloaded

17

Download by Attachment Type

Download emails with specific attachment types

Matching emails downloaded

18

Download by Attachment Size

Download emails with small attachments only

Filtered emails downloaded

19

Download by Custom Filter

Apply custom filter for download

Filtered emails downloaded

20

Download by Time of Day

Download emails received during specific hours

Time-filtered emails downloaded

21

Download by Day of Week

Download emails received on specific days

Day-filtered emails downloaded

22

Download by Frequency

Download emails at specific intervals

Emails downloaded as scheduled

23

Download by Network Type

Download only on Wi-Fi

Emails downloaded on Wi-Fi only

24

Download by Battery Level

Download only when battery is above threshold

Emails downloaded when battery is sufficient

25

Download by Storage Availability

Download only if enough storage is available

Emails downloaded if space is available

26

Download by Device Type

Download only on specific device types

Emails downloaded on allowed devices

27

Download by User Profile

Download based on user profile settings

Personalized emails downloaded

28

Download by Sync Settings

Download based on sync preferences

Emails downloaded per sync settings

29

Download by Connection Speed

Download only on high-speed connections

Emails downloaded on fast connections

30

Download by Encryption Status

Download only encrypted emails

Encrypted emails downloaded

31

Download by Spam Filter

Exclude spam-marked emails

Spam emails skipped

32

Download by Virus Scan Result

Exclude emails flagged by antivirus

Safe emails downloaded

33

Download by Quota Limit

Download within mailbox quota

Quota not exceeded

34

Download by Sync Window

Download emails within sync window

Emails within window downloaded

35

Download by User Consent

Download only after user approval

Emails downloaded after consent

36

Download by App Policy

Follow app-level download policy

Policy-compliant emails downloaded

37

Download by Admin Policy

Follow admin-defined download rules

Admin rules enforced

38

Download by IMAP Extension Support

Use IMAP extensions for selective download

Extensions used successfully

39

Download by Server Capability

Check server support for selective download

Server capability verified

40

Download by Client Capability

Check client support for selective download

Client capability verified

41

Download by User Role

Download based on user role (e.g., admin, guest)

Role-based emails downloaded

42

Download by Email Age

Download emails older than a certain period

Older emails downloaded

43

Download by Email Importance

Download only high-importance emails

Important emails downloaded

44

Download by Email Category

Download emails from specific categories

Category-filtered emails downloaded

45

Download by Email Status

Download only replied or forwarded emails

Status-filtered emails downloaded

46

Download by Custom Script

Use script to define download logic

Script-executed download completed

47

Download by API Integration

Use API to control selective download

API-controlled download successful

48

Download by User Feedback

Adjust download based on user feedback

Feedback-based download executed

49

Download by Machine Learning Filter

Use ML to predict relevant emails

Relevant emails downloaded

50

Download by Smart Sync Engine

Use smart sync engine for optimized download

Optimized download completed

Folder Management - Testcases

S.No

Test Case

Description

Expected Result

1

Create Folder

Create a new folder via IMAP client

Folder is created successfully

2

Create Nested Folder

Create a subfolder inside another folder

Subfolder created under parent

3

Create Folder with Special Characters

Use special characters in folder name

Folder created or error shown if invalid

4

Create Folder with Long Name

Folder name >255 characters

Error or truncated name

5

Create Duplicate Folder

Create folder with existing name

Error or merge based on server policy

6

Rename Folder

Rename an existing folder

Folder name updated

7

Rename to Existing Folder Name

Rename to a name that already exists

Error or merge

8

Delete Folder

Delete a folder via IMAP

Folder and contents removed

9

Delete Non-Empty Folder

Delete folder with emails

Folder and emails deleted

10

Delete System Folder

Try deleting Inbox or Sent

Operation denied

11

Move Folder

Move folder to another parent

Folder moved successfully

12

Copy Folder

Copy folder and contents

Duplicate folder created

13

Access Folder

Open folder to view emails

Emails displayed

14

Access Nested Folder

Open subfolder

Subfolder contents displayed

15

List All Folders

List all folders in mailbox

All folders displayed

16

Folder Hierarchy Display

Display folder tree

Correct hierarchy shown

17

Folder Sync Across Devices

Create folder on one device

Folder appears on all devices

18

Folder Rename Sync

Rename folder on one device

Name updated on all devices

19

Folder Delete Sync

Delete folder on one device

Folder removed from all devices

20

Folder Permissions

Set read/write permissions

Permissions enforced

21

Folder Quota

Set quota for folder

Quota enforced

22

Folder Subscription

Subscribe to folder

Folder appears in client

23

Unsubscribe Folder

Unsubscribe from folder

Folder hidden in client

24

Folder with Unicode Name

Use non-English characters

Folder created and displayed correctly

25

Folder with Emojis

Use emojis in folder name

Folder created or error shown

26

Folder with Reserved Words

Use reserved names (e.g., INBOX)

Error or override denied

27

Folder with Invalid Characters

Use slashes or control characters

Error shown

28

Folder Sorting

Sort folders alphabetically

Sorted list displayed

29

Folder Search

Search for folder by name

Matching folders listed

30

Folder with Large Number of Emails

Folder with >10,000 emails

Folder loads with pagination

31

Folder with Large Attachments

Folder with large email files

Folder loads successfully

32

Folder with Corrupt Email

Folder contains corrupt email

Folder loads, error handled

33

Folder with Mixed Content

Folder with text, HTML, attachments

All content types handled

34

Folder with Shared Access

Shared folder between users

Access based on permissions

35

Folder Access via Webmail

Access folder via browser

Folder and contents displayed

36

Folder Access via Mobile

Access folder via mobile app

Folder synced and accessible

37

Folder Access via Desktop

Access folder via desktop client

Folder synced and accessible

38

Folder Access with VPN

Access folder over VPN

Folder accessible securely

39

Folder Access with Proxy

Access folder via proxy

Folder accessible

40

Folder Access with SSL

Secure access to folder

Folder accessed over SSL

41

Folder Access with TLS

Secure access via STARTTLS

Folder accessed securely

42

Folder Access with IPv6

Access folder using IPv6

Folder accessible

43

Folder Access with Timeout

Session timeout during folder access

Session closed or resumed

44

Folder Access with Network Drop

Network fails mid-access

Session resumes or reconnects

45

Folder Access with Quota Exceeded

Folder exceeds quota

Warning or access denied

46

Folder Access with Server Restart

Server restarts during access

Session resumes or reconnects

47

Folder Access with IMAP IDLE

Real-time updates in folder

New emails pushed instantly

48

Folder Access with IMAP SELECT

Select folder for operations

Folder selected successfully

49

Folder Access with IMAP EXAMINE

Read-only access to folder

Folder opened in read-only mode

50

Folder Access with IMAP LIST

List folders using IMAP LIST

Folder list returned

Message Flags - Testcases

S.No

Test Case

Description

Expected Result

1

Set Seen Flag

Mark email as read

Email marked as read

2

Unset Seen Flag

Mark email as unread

Email marked as unread

3

Set Answered Flag

Mark email as replied

Email marked as answered

4

Set Flagged Flag

Mark email as important/starred

Email flagged

5

Set Deleted Flag

Mark email for deletion

Email marked for deletion

6

Set Draft Flag

Save email as draft

Email marked as draft

7

Remove Flagged Flag

Unflag an email

Flag removed

8

Remove Answered Flag

Unmark reply status

Answered flag removed

9

Remove Deleted Flag

Unmark deletion

Email no longer marked for deletion

10

Remove Draft Flag

Remove draft status

Draft flag removed

11

Apply Multiple Flags

Set multiple flags on one email

All flags applied correctly

12

Clear All Flags

Remove all flags from email

Email has no flags

13

Check Flag Persistence

Flags persist across sessions

Flags remain after reconnect

14

Check Flag Sync

Flags sync across devices

Flags consistent on all clients

15

Check Flag Visibility

Flags visible in email client UI

Flags displayed correctly

16

Set Custom Flag

Apply custom flag (e.g., $MyFlag)

Custom flag applied

17

Remove Custom Flag

Remove custom flag

Custom flag removed

18

Invalid Flag Format

Use unsupported flag format

Error returned

19

Flag on Non-existent Email

Apply flag to invalid UID

Error returned

20

Flag on Deleted Email

Apply flag to deleted message

Error or ignored

21

Flag on Expunged Email

Apply flag to expunged message

Error returned

22

Flag on Large Email

Apply flag to large message

Flag applied successfully

23

Flag on MIME Email

Apply flag to multipart message

Flag applied to entire message

24

Flag on HTML Email

Apply flag to HTML content

Flag applied successfully

25

Flag on Plain Text Email

Apply flag to plain text email

Flag applied successfully

26

Flag on Inline Image Email

Apply flag to email with images

Flag applied successfully

27

Flag on Attachment Email

Apply flag to email with attachments

Flag applied successfully

28

Flag with UID STORE

Use UID STORE to set flag

Flag applied using UID

29

Flag with STORE Command

Use STORE to set flag

Flag applied successfully

30

Flag with Silent Mode

Use STORE +FLAGS.SILENT

Flag set without server response

31

Flag with FETCH FLAGS

Retrieve flags using FETCH

Correct flags returned

32

Flag with SEARCH FLAGGED

Search for flagged emails

Only flagged emails returned

33

Flag with SEARCH SEEN

Search for read emails

Only read emails returned

34

Flag with SEARCH UNSEEN

Search for unread emails

Only unread emails returned

35

Flag with SEARCH DELETED

Search for deleted emails

Only deleted emails returned

36

Flag with SEARCH DRAFT

Search for draft emails

Only drafts returned

37

Flag with SEARCH ANSWERED

Search for replied emails

Only answered emails returned

38

Flag with SEARCH Custom

Search using custom flag

Matching emails returned

39

Flag with COPY Command

Copy flagged email

Flags preserved in copy

40

Flag with MOVE Command

Move flagged email

Flags preserved after move

41

Flag with EXPUNGE

Expunge deleted emails

Emails with Deleted removed

42

Flag with UID EXPUNGE

UID-based expunge

Specific deleted emails removed

43

Flag with Concurrent Access

Set flag from two clients

Last update wins or merged

44

Flag with Server Restart

Set flag, then restart server

Flags persist after restart

45

Flag with Network Drop

Set flag during disconnect

Flag may not persist

46

Flag with Read-Only Access

Try to set flag in read-only mode

Operation denied

47

Flag with Read-Write Access

Set flag in read-write mode

Operation successful

48

Flag with ACL Restrictions

User lacks flag permission

Operation denied

49

Flag with Logging Enabled

Log flag changes

Logs show flag operations

50

Flag with IMAP Extension

Use IMAP extensions (e.g., CONDSTORE)

Flags updated conditionally

Concurrent Access - Testcases

S.No

Test Case

Description

Expected Result

1

Multiple Clients Login

Two clients log in to the same mailbox

Both sessions established successfully

2

Simultaneous Folder Access

Two clients access the same folder

Folder accessible by both

3

Simultaneous Email Read

Two clients read the same email

No conflict; both can read

4

Simultaneous Email Flagging

One client flags, another unflags

Latest action reflected

5

Simultaneous Email Deletion

Both clients delete the same email

Email marked deleted; expunged once

6

Simultaneous Email Move

One client moves email to folder A, another to folder B

Final location depends on last action

7

Simultaneous Draft Edits

Both clients edit the same draft

Conflict may occur; last save wins

8

Simultaneous Folder Rename

Two clients rename the same folder

One succeeds, other fails or conflicts

9

Simultaneous Folder Deletion

Both clients delete the same folder

Folder deleted; second attempt fails

10

Simultaneous Folder Creation

Both clients create folder with same name

One succeeds; other gets error

11

Concurrent Search

Both clients perform search

Searches execute independently

12

Concurrent Fetch

Both clients fetch same email

Fetch succeeds for both

13

Concurrent Append

Both clients append emails to same folder

Both emails added successfully

14

Concurrent Expunge

One client expunges while another is idle

Expunged messages disappear from both

15

Concurrent UID FETCH

Both clients fetch using UID

Correct messages returned

16

Concurrent STORE Commands

Both clients update flags

Final state reflects last update

17

Concurrent IDLE Sessions

Both clients use IDLE for push

Both receive updates

18

Concurrent Logout

One client logs out while other is active

Other session remains unaffected

19

Concurrent Session Timeout

One session times out

Other session remains active

20

Concurrent Access with ACLs

One user has read-only, another read-write

Permissions enforced correctly

21

Concurrent Access with Quota Limit

Both clients upload large emails

Quota enforced; one may fail

22

Concurrent Access with Network Drop

One client disconnects unexpectedly

Other session unaffected

23

Concurrent Access with Server Restart

Server restarts during access

Sessions dropped; reconnect required

24

Concurrent Access with Shared Mailbox

Two users access shared mailbox

Access allowed per permissions

25

Concurrent Access with Different Devices

Access from phone and desktop

Sync maintained across devices

26

Concurrent Access with Same UID

Same UID used in both sessions

Server handles correctly

27

Concurrent Access with Different UIDs

Different UIDs used

Sessions isolated

28

Concurrent Access with IMAP Proxy

Access via proxy

Proxy handles sessions correctly

29

Concurrent Access with VPN

One client via VPN, one direct

Both sessions work

30

Concurrent Access with SSL

Both clients use SSL

Secure sessions established

31

Concurrent Access with TLS

Both clients use STARTTLS

Secure sessions established

32

Concurrent Access with Plaintext

One client uses plaintext

Session allowed if server permits

33

Concurrent Access with Different Timezones

Clients in different timezones

No impact on access

34

Concurrent Access with Different Languages

Clients use different locales

No conflict

35

Concurrent Access with IMAP Extensions

Clients use different extensions

Server handles both

36

Concurrent Access with Large Mailbox

10,000+ emails

Performance remains stable

37

Concurrent Access with Large Attachments

Download large files simultaneously

Downloads succeed

38

Concurrent Access with Email Sync

One client syncs all folders

Other client unaffected

39

Concurrent Access with Email Backup

One client backs up mailbox

Other client continues normal access

40

Concurrent Access with Email Restore

One client restores emails

Changes reflected in other client

41

Concurrent Access with Antivirus Scan

One client triggers scan

Other client may experience delay

42

Concurrent Access with Spam Filter

One client marks spam

Other client sees updated folder

43

Concurrent Access with Auto-Reply

One client sets auto-reply

Other client unaffected

44

Concurrent Access with Vacation Mode

One client enables vacation mode

Other client unaffected

45

Concurrent Access with Logging Enabled

Server logs all sessions

Logs show both sessions

46

Concurrent Access with Audit Trail

Track actions from both clients

Audit trail shows all activity

47

Concurrent Access with Session Limit

Server has max session limit

New session denied if limit reached

48

Concurrent Access with Session Conflict

Same action from both clients

Server resolves conflict

49

Concurrent Access with IMAP Server Cluster

Load-balanced access

Sessions distributed across nodes

50

Concurrent Access with IMAP Failover

One node fails

Session continues on backup node

Offline Access Support - Testcases

S.No

Test Case

Description

Expected Result

1

Enable Offline Mode

Verify user can enable offline mode

Offline mode is activated

2

Disable Offline Mode

Verify user can disable offline mode

Offline mode is deactivated

3

Access Data Offline

Verify user can access previously synced data offline

Data is accessible

4

Modify Data Offline

Verify user can modify data while offline

Changes are saved locally

5

Sync After Reconnect

Verify data syncs after reconnecting to internet

Data is synced correctly

6

Offline Mode Indicator

Check if UI shows offline status

Offline indicator is visible

7

No Internet Prompt

Verify prompt appears when internet is lost

Prompt is shown

8

Auto Sync on Reconnect

Verify auto-sync starts after reconnect

Sync starts automatically

9

Manual Sync Option

Verify user can manually trigger sync

Sync starts on user action

10

Data Conflict Resolution

Verify conflict resolution when both online and offline changes exist

Conflict resolution prompt appears

11

Offline Mode Toggle UI

Verify toggle switch for offline mode is functional

Toggle works correctly

12

Offline Mode Persistence

Verify offline mode persists after app restart

Mode remains active

13

Offline Mode on App Launch

Verify app launches in offline mode if no internet

App opens in offline mode

14

Read-Only Restrictions

Verify read-only restrictions for unsynced data

Unsynced data is read-only

15

Offline Mode Notification

Verify notification is shown when offline mode is enabled

Notification appears

16

Background Sync

Verify background sync works when internet is restored

Sync completes in background

17

Offline Mode with VPN

Verify offline mode works with VPN enabled

No interference from VPN

18

Offline Mode with Airplane Mode

Verify offline mode works in airplane mode

App functions offline

19

Data Integrity Post Sync

Verify data integrity after sync

Data is consistent

20

Offline Mode Timeout

Verify offline mode does not timeout unexpectedly

Mode remains until disabled

21

Offline Mode on Different Devices

Verify offline mode behavior on multiple devices

Consistent behavior

22

Offline Mode with Low Battery

Verify offline mode works with low battery

No performance issues

23

Offline Mode with Background Apps

Verify offline mode works with other apps running

No interference

24

Offline Mode with Large Data

Verify performance with large offline data

App remains responsive

25

Offline Mode with Corrupted Cache

Verify behavior with corrupted offline cache

Error message shown

26

Offline Mode with App Update

Verify offline mode persists after app update

Mode remains active

27

Offline Mode with OS Update

Verify offline mode persists after OS update

Mode remains active

28

Offline Mode with Permissions Denied

Verify behavior when storage permissions are denied

Proper error shown

29

Offline Mode with Limited Storage

Verify behavior with low device storage

Warning shown

30

Offline Mode with External Storage

Verify offline data can be stored externally

Data is saved correctly

31

Offline Mode with Encryption

Verify offline data is encrypted

Data is secure

32

Offline Mode with User Logout

Verify offline data is cleared on logout

Data is removed

33

Offline Mode with Multiple Users

Verify offline data is user-specific

Data is isolated

34

Offline Mode with Background Sync Disabled

Verify manual sync works when background sync is off

Manual sync functions

35

Offline Mode with Notifications

Verify notifications are handled offline

Notifications are queued

36

Offline Mode with Push Notifications

Verify push notifications are not received

No push notifications

37

Offline Mode with Scheduled Tasks

Verify scheduled tasks execute offline

Tasks run as expected

38

Offline Mode with Location Services

Verify location-based features offline

Limited or no functionality

39

Offline Mode with Biometric Login

Verify biometric login works offline

Login successful

40

Offline Mode with App Crash

Verify data is retained after crash

Data is not lost

41

Offline Mode with App Reinstall

Verify offline data is cleared on reinstall

Data is removed

42

Offline Mode with Sync Errors

Verify error handling during sync

Errors are logged and shown

43

Offline Mode with Server Downtime

Verify app handles server unavailability

Retry mechanism works

44

Offline Mode with Data Filters

Verify filters work on offline data

Filters apply correctly

45

Offline Mode with Search

Verify search works on offline data

Search returns results

46

Offline Mode with Sorting

Verify sorting works on offline data

Sorting is functional

47

Offline Mode with Pagination

Verify pagination works offline

Pages load correctly

48

Offline Mode with Media Files

Verify media files are accessible offline

Files open correctly

49

Offline Mode with Forms

Verify forms can be filled offline

Data is saved locally

50

Offline Mode with Sync Logs

Verify logs are maintained for sync actions

Logs are accurate

Search Capability - Testcases

S.No

Test Case

Description

Expected Result

1

Search by Subject

Search emails with a specific subject

Emails with matching subject returned

2

Search by Sender

Search emails from a specific sender

Emails from sender returned

3

Search by Recipient

Search emails sent to a specific recipient

Matching emails returned

4

Search by Date

Search emails sent on a specific date

Emails from that date returned

5

Search by Date Range

Search emails between two dates

Emails within range returned

6

Search by Keyword

Search emails containing a keyword

Emails with keyword in body or subject returned

7

Search by Flag Seen

Search for read emails

Only read emails returned

8

Search by Flag Unseen

Search for unread emails

Only unread emails returned

9

Search by Flag Answered

Search for replied emails

Only answered emails returned

10

Search by Flag Flagged

Search for flagged/starred emails

Only flagged emails returned

11

Search by Flag Deleted

Search for deleted emails

Only deleted emails returned

12

Search by Flag Draft

Search for draft emails

Only draft emails returned

13

Search by Size Greater Than

Search emails larger than X bytes

Only large emails returned

14

Search by Size Less Than

Search emails smaller than X bytes

Only small emails returned

15

Search by Header Field

Search using specific header (e.g., X-Priority)

Emails with matching header returned

16

Search by Message ID

Search using unique message ID

Specific email returned

17

Search by UID

Search using UID

Email with matching UID returned

18

Search by Text in Body

Search for text in email body

Matching emails returned

19

Search by Text in Subject

Search for text in subject line

Matching emails returned

20

Search by Text in Entire Message

Search across headers, subject, and body

Matching emails returned

21

Search with AND Condition

Combine multiple criteria (e.g., FROM + SUBJECT)

Emails matching all conditions returned

22

Search with OR Condition

Search emails matching either of two criteria

Emails matching any condition returned

23

Search with NOT Condition

Exclude emails with specific criteria

Emails not matching condition returned

24

Search with Complex Boolean Logic

Use nested AND/OR/NOT

Correct subset of emails returned

25

Search with Invalid Syntax

Use malformed search query

Error returned

26

Search in Specific Folder

Search within a selected folder

Results limited to that folder

27

Search Across All Folders

Search across all folders (if supported)

Results from all folders returned

28

Search with Case Sensitivity

Search with different case

Case-insensitive match (per IMAP spec)

29

Search with Special Characters

Search with symbols or punctuation

Correct results returned

30

Search with Unicode Characters

Search with emojis or non-Latin text

Matching emails returned

31

Search with Empty Query

Submit empty search

All emails returned or error shown

32

Search with No Matches

Search for non-existent term

No results returned

33

Search with Large Mailbox

Search in mailbox with 10,000+ emails

Results returned within acceptable time

34

Search with Timeout

Simulate slow server response

Timeout error or retry

35

Search with Server Restart

Server restarts during search

Search interrupted or retried

36

Search with Concurrent Access

Multiple clients search simultaneously

All searches succeed independently

37

Search with IMAP SEARCH Command

Use SEARCH command directly

Correct results returned

38

Search with IMAP UID SEARCH

Use UID SEARCH command

Correct results returned

39

Search with CHARSET UTF-8

Use UTF-8 charset in search

Unicode results returned correctly

40

Search with CHARSET US-ASCII

Use ASCII charset

Results returned correctly

41

Search with CHARSET Unsupported

Use unsupported charset

Error returned

42

Search with Partial Match

Search with partial word

Partial matches returned (if supported)

43

Search with Exact Match

Search with quoted phrase

Exact matches returned

44

Search with Date Format Error

Use invalid date format

Error returned

45

Search with Deleted Folder

Search in deleted folder

Error or no results

46

Search with Read-Only Access

Search in read-only mode

Search allowed

47

Search with No Access

Search in restricted folder

Access denied

48

Search with Logging Enabled

Enable logging during search

Search queries logged

49

Search with Audit Trail

Track search activity

Search recorded in audit logs

50

Search with IMAP Extension (e.g., ESEARCH)

Use extended search capabilities

Enhanced results returned

Partial Fetch - Testcases

S.No

Test Case

Description

Expected Result

1

Fetch Email Header Only

Verify fetching only the header of an email

Only header is retrieved

2

Fetch Email Body Only

Verify fetching only the body of an email

Only body is retrieved

3

Fetch Specific MIME Part

Verify fetching a specific MIME part of an email

Requested MIME part is retrieved

4

Fetch Attachment Only

Verify fetching only the attachment

Only attachment is downloaded

5

Fetch First N Bytes

Verify fetching first N bytes of the email body

Partial content is retrieved

6

Fetch Last N Bytes

Verify fetching last N bytes of the email body

Partial content is retrieved

7

Fetch with BODY.PEEK

Verify fetching without marking message as read

Message remains unread

8

Fetch with BODY[]

Verify full message fetch using BODY[]

Entire message is retrieved

9

Fetch with BODY[HEADER.FIELDS]

Verify fetching specific header fields

Only specified fields are retrieved

10

Fetch with BODY[TEXT]

Verify fetching only the text part of the message

Only text part is retrieved

11

Fetch with BODY[1]

Verify fetching first MIME part

First MIME part is retrieved

12

Fetch with BODY[2]

Verify fetching second MIME part

Second MIME part is retrieved

13

Fetch with BODY[1.MIME]

Verify fetching MIME header of first part

MIME header is retrieved

14

Fetch with BODY[1.TEXT]

Verify fetching text of first MIME part

Text content is retrieved

15

Fetch with BODY[1.HEADER]

Verify fetching header of first MIME part

Header is retrieved

16

Fetch with BODY[1]<0.100>

Verify fetching first 100 bytes of first MIME part

Partial content is retrieved

17

Fetch with BODY[2]<100.200>

Verify fetching bytes 100299 of second MIME part

Correct byte range is retrieved

18

Fetch with Invalid Part

Verify behavior when requesting non-existent part

Error or empty response

19

Fetch with Invalid Byte Range

Verify behavior with out-of-bound byte range

Error or truncated response

20

Fetch with Large Byte Range

Verify performance with large partial fetch

Data is retrieved efficiently

21

Fetch with UID

Verify partial fetch using UID instead of sequence number

Correct message is retrieved

22

Fetch with Sequence Number

Verify partial fetch using sequence number

Correct message is retrieved

23

Fetch from Deleted Message

Verify behavior when fetching from deleted message

Error or no data

24

Fetch from Expunged Message

Verify behavior when fetching from expunged message

Error or no data

25

Fetch from Draft Folder

Verify partial fetch from draft folder

Data is retrieved correctly

26

Fetch from Sent Folder

Verify partial fetch from sent folder

Data is retrieved correctly

27

Fetch from Trash Folder

Verify partial fetch from trash folder

Data is retrieved correctly

28

Fetch from Shared Mailbox

Verify partial fetch from shared mailbox

Data is retrieved correctly

29

Fetch with Concurrent Access

Verify partial fetch during concurrent access

No data corruption

30

Fetch with Network Latency

Verify partial fetch under high latency

Fetch completes successfully

31

Fetch with Offline Mode

Verify behavior when offline

Fetch fails gracefully

32

Fetch with Authentication Failure

Verify behavior with invalid credentials

Fetch is denied

33

Fetch with Session Timeout

Verify behavior after session timeout

Fetch fails with error

34

Fetch with Server Timeout

Verify behavior when server times out

Fetch fails with timeout error

35

Fetch with Server Restart

Verify behavior during server restart

Fetch fails or retries

36

Fetch with TLS Enabled

Verify partial fetch over secure connection

Data is securely retrieved

37

Fetch with TLS Disabled

Verify partial fetch over insecure connection

Data is retrieved

38

Fetch with IMAP IDLE

Verify fetch during IDLE state

Fetch completes successfully

39

Fetch with IMAP Compression

Verify fetch with compression enabled

Data is compressed

40

Fetch with IMAP Proxy

Verify fetch through proxy server

Data is retrieved correctly

41

Fetch with Logging Enabled

Verify logs are generated for partial fetch

Logs contain fetch details

42

Fetch with Logging Disabled

Verify no logs are generated

No fetch logs present

43

Fetch with Quota Limit

Verify behavior when user quota is exceeded

Fetch fails with quota error

44

Fetch with Folder Rename

Verify fetch after folder is renamed

Fetch works with updated path

45

Fetch with Folder Move

Verify fetch after folder is moved

Fetch works with updated path

46

Fetch with Message Flagged

Verify fetch from flagged message

Data is retrieved correctly

47

Fetch with Message Marked Seen

Verify fetch updates seen status

Message marked as seen

48

Fetch with Message Marked Unseen

Verify fetch does not update seen status

Message remains unseen

49

Fetch with Message Size Limit

Verify fetch respects message size limits

Partial fetch succeeds

50

Fetch with Server Load

Verify fetch under high server load

Fetch completes without error

Server Side Storage - Testcases

S.No

Test Case

Description

Expected Result

1

IMAP Connection

Connect to IMAP server

Connection established

2

Valid Login

Authenticate with correct credentials

Login successful

3

Invalid Login

Authenticate with wrong credentials

Login fails

4

Create Mailbox

Create a new mailbox

Mailbox created

5

Duplicate Mailbox

Create mailbox with existing name

Error: Already exists

6

Delete Mailbox

Delete an existing mailbox

Mailbox deleted

7

Delete Non-existent Mailbox

Try deleting a mailbox that doesn’t exist

Error: Not found

8

Rename Mailbox

Rename an existing mailbox

Mailbox renamed

9

Rename to Existing Name

Rename mailbox to a name that already exists

Error: Name conflict

10

List Mailboxes

List all available mailboxes

Mailboxes listed

11

Select Mailbox

Select a mailbox for operations

Mailbox selected

12

Select Invalid Mailbox

Select a non-existent mailbox

Error: Not found

13

Store Message

Store a message in mailbox

Message stored

14

Store Large Message

Store message exceeding size limit

Error: Size exceeded

15

Retrieve Message

Retrieve a stored message

Message retrieved

16

Retrieve Invalid Message

Retrieve message with wrong UID

Error: Not found

17

Delete Message

Delete a message from mailbox

Message deleted

18

Delete Invalid Message

Delete message with invalid UID

Error: Not found

19

Move Message

Move message to another mailbox

Message moved

20

Copy Message

Copy message to another mailbox

Message copied

21

Search by Subject

Search messages using subject

Matching messages returned

22

Search by Sender

Search messages using sender

Matching messages returned

23

Search by Date

Search messages using date

Matching messages returned

24

Search No Match

Search with no matching criteria

No messages returned

25

Set Seen Flag

Mark message as read

Flag set

26

Unset Seen Flag

Unmark message as read

Flag removed

27

Set Flagged

Mark message as flagged

Flag set

28

Unset Flagged

Unmark message as flagged

Flag removed

29

Set Custom Flag

Add custom flag to message

Custom flag set

30

Remove Custom Flag

Remove custom flag from message

Custom flag removed

31

Expunge Deleted

Permanently delete marked messages

Messages expunged

32

Expunge Empty

Expunge with no deleted messages

No changes

33

Check Quota

Check mailbox quota

Quota info returned

34

Exceed Quota

Store message beyond quota

Error: Quota exceeded

35

Store with Attachment

Store message with attachment

Message stored

36

Retrieve Attachment

Retrieve message with attachment

Attachment retrieved

37

Store Encrypted

Store encrypted message

Message stored

38

Retrieve Encrypted

Retrieve encrypted message

Message retrieved

39

Store Large Body

Store message with large body

Message stored

40

Retrieve Large Body

Retrieve message with large body

Message retrieved

41

Store Special Characters

Store message with special characters

Message stored

42

Retrieve Special Characters

Retrieve message with special characters

Message retrieved

43

Store HTML

Store message with HTML content

HTML stored

44

Retrieve HTML

Retrieve message with HTML content

HTML rendered

45

Store Inline Images

Store message with inline images

Images stored

46

Retrieve Inline Images

Retrieve message with inline images

Images displayed

47

Store Multiple Recipients

Store message with multiple recipients

Message stored

48

Retrieve Multiple Recipients

Retrieve message with multiple recipients

Message retrieved

49

Store Priority Header

Store message with priority header

Header stored

50

Retrieve Priority Header

Retrieve message with priority header

Header retrieved

  • Reference links