MailClient class

Highlevel online API to access mail.

Constructors

MailClient.new(MailAccount account, {bool isLogEnabled = false, int? downloadSizeLimit, EventBus? eventBus, String? logName, bool onBadCertificate(X509Certificate)?})
Creates a new highlevel online mail client for the given account.

Properties

account MailAccount
no setter
eventBus → EventBus
event bus for firing and listening to events
no setter
hashCode int
The hash code for this object.
no setterinherited
isConnected bool
no setter
lowLevelIncomingMailClient → ClientBase
Retrieves the low level mail client for reading mails
no setter
lowLevelIncomingMailClientType ServerType
Retrieves the type pof the low level mail client, currently either ServerType.imap or ServerType.pop
no setter
lowLevelOutgoingMailClient → ClientBase
Retrieves the low level mail client for sending mails
no setter
lowLevelOutgoingMailClientType ServerType
Retrieves the type pof the low level mail client, currently always ServerType.smtp
no setter
mailboxes List<Mailbox>?
Retrieves the previously caches mailboxes
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedMailbox Mailbox?
Retrieves the currently selected mailbox, if any.
no setter
supportsMailboxes bool
Checks if this mail client supports different mailboxes
no setter
supportsThreading bool
Checks if the connected service supports threading
no setter

Methods

addEventFilter(MailEventFilter filter) → void
Adds the specified mail event filter.
appendMessage(MimeMessage message, Mailbox targetMailbox, {List<String>? flags}) Future<UidResponseCode?>
Appends the message to the targetMailboxF.
appendMessageToFlag(MimeMessage message, MailboxFlag targetMailboxFlag, {List<String>? flags}) Future<UidResponseCode?>
Appends the message to the mailbox with the targetMailboxFlag.
buildMimeMessageWithRecommendedTextEncoding(MessageBuilder messageBuilder) Future<MimeMessage?>
Builds the mime message from the given messageBuilder with the recommended text encodings.
connect() Future<void>
Connects and authenticates with the specified incoming mail server.
createMailbox(String mailboxName, {Mailbox? parentMailbox}) Future<Mailbox>
Creates a new mailbox with the given mailboxName.
deleteAllMessages(Mailbox mailbox, {bool? expunge}) Future<DeleteResult>
Deletes all messages from the specified mailbox.
deleteMailbox(Mailbox mailbox) Future<void>
deleteMessage(MimeMessage message) Future<DeleteResult>
Deletes the given message.
deleteMessages(MessageSequence sequence) Future<DeleteResult>
Deletes the given message sequence.
disconnect() Future
Disconnects from the mail service.
fetchMessageContents(MimeMessage message, {int? maxSize, bool markAsSeen = false, List<MediaToptype>? includedInlineTypes}) Future<MimeMessage>
Fetches the contents of the specified message.
fetchMessagePart(MimeMessage message, String fetchId) Future<MimePart>
Fetches the part with the specified fetchId of the specified message.
fetchMessages({Mailbox? mailbox, int count = 20, int page = 1, FetchPreference fetchPreference = FetchPreference.fullWhenWithinSize}) Future<List<MimeMessage>>
Loads the specified page of messages starting at the latest message and going down count messages.
fetchMessageSequence(MessageSequence sequence, {Mailbox? mailbox, FetchPreference fetchPreference = FetchPreference.fullWhenWithinSize, bool markAsSeen = false}) Future<List<MimeMessage>>
Loads the specified sequence of messages.
fetchMessagesNextPage(PagedMessageSequence pagedSequence, {Mailbox? mailbox, FetchPreference fetchPreference = FetchPreference.fullWhenWithinSize, bool markAsSeen = false}) Future<List<MimeMessage>>
Loads the next page of messages in the given pagedSequence.
fetchNextPage(PagedMessageResult pagedResult) Future<List<MimeMessage>>
Retrieves the next page of messages for the specified pagedResult.
fetchThreadData({Mailbox? mailbox, required DateTime since, bool setThreadSequences = false}) Future<ThreadDataResult>
Retrieves thread information starting at since.
fetchThreads({Mailbox? mailbox, required DateTime since, ThreadPreference threadPreference = ThreadPreference.latest, FetchPreference fetchPreference = FetchPreference.envelope, int pageSize = 30}) Future<ThreadResult>
Retrieves the threads starting at since.
fetchThreadsNextPage(ThreadResult threadResult) Future<List<MimeMessage>>
Retrieves the next page for the given threadResult and returns the loaded messsages.
flagMessage(MimeMessage message, {bool? isSeen, bool? isFlagged, bool? isAnswered, bool? isForwarded, bool? isDeleted, bool? isMdnSent, bool? isReadReceiptSent}) Future<void>
Flags the message with the specified flags.
getMailbox(MailboxFlag flag, [List<Mailbox>? boxes]) Mailbox?
Retrieves the mailbox with the specified flag from the provided boxes. When no boxes are given, then the MailClient.mailboxes are used.
isPolling() bool
Checks if this mail client is currently polling.
junkMessage(MimeMessage message) Future<MoveResult>
Moves the specified message to the junk folder
junkMessages(MessageSequence sequence) Future<MoveResult>
Moves the specified message sequence to the junk folder
listMailboxes({List<MailboxFlag>? order}) Future<List<Mailbox>>
Lists all mailboxes/folders of the incoming mail server.
listMailboxesAsTree({bool createIntermediate = true, List<MailboxFlag> order = defaultMailboxOrder}) Future<Tree<Mailbox?>>
Lists all mailboxes/folders of the incoming mail server as a tree in the specified order.
markAnswered(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as answered.
markDeleted(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as deleted.
markFlagged(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as flagged.
markForwarded(MessageSequence sequence, {bool? silent, int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as forwarded.
markSeen(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as seen/read.
markUnanswered(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as not answered.
markUndeleted(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as not deleted.
markUnflagged(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as unflagged.
markUnforwarded(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as not forwarded.
markUnseen(MessageSequence sequence, {int? unchangedSinceModSequence}) Future<void>
Convenience method for marking the messages from the specified sequence as unseen/unread.
moveMessage(MimeMessage message, Mailbox target) Future<MoveResult>
Moves the specified message to the given target folder
moveMessages(MessageSequence sequence, Mailbox target) Future<MoveResult>
Moves the specified message sequence to the given target folder
moveMessagesToFlag(MessageSequence sequence, MailboxFlag flag) Future<MoveResult>
Moves the specified message sequence to the folder flagged with the specified mailbox flag.
moveMessagesToInbox(MessageSequence sequence) Future<MoveResult>
Moves the specified message sequence to the inbox folder
moveMessageToFlag(MimeMessage message, MailboxFlag flag) Future<MoveResult>
Moves the specified message to the folder flagged with the specified mailbox flag.
moveMessageToInbox(MimeMessage message) Future<MoveResult>
Moves the specified message to the inbox folder
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeEventFilter(MailEventFilter filter) → void
Removes the specified mail event filter.
resume() Future<void>
Resumes the mail client after a some inactivity.
saveDraftMessage(MimeMessage message) Future<UidResponseCode?>
Appends the message to the drafts mailbox with the \Draft and \Seen message flags.
searchMessages(MailSearch search) Future<MailSearchResult>
Searches the messages with the criteria defined in search.
searchMessagesNextPage(MailSearchResult searchResult) Future<List<MimeMessage>>
Retrieves the next page of messages for the specified searchResult.
selectInbox({bool enableCondstore = false, QResyncParameters? qresync}) Future<Mailbox>
Shortcut to select the INBOX.
selectMailbox(Mailbox mailbox, {bool enableCondstore = false, QResyncParameters? qresync}) Future<Mailbox>
Selects the specified mailbox/folder.
selectMailboxByFlag(MailboxFlag flag, {bool enableCondstore = false, QResyncParameters? qresync}) Future<Mailbox>
Selects the mailbox/folder with the specified flag.
selectMailboxByPath(String path, {bool enableCondstore = false, QResyncParameters? qresync}) Future<Mailbox>
Selects the mailbox/folder with the specified path.
sendMessage(MimeMessage message, {MailAddress? from, bool appendToSent = true, bool use8BitEncoding = false, List<MailAddress>? recipients}) Future<void>
Sends the specified message.
sendMessageBuilder(MessageBuilder messageBuilder, {MailAddress? from, bool appendToSent = true, List<MailAddress>? recipients}) Future
Sends the message defined with the specified messageBuilder with the recommended text encoding.
sortMailboxes(List<MailboxFlag> order, List<Mailbox> mailboxes, {bool keepRemaining = true, bool sortRemainingAlphabetically = true}) List<Mailbox>
Retrieves the mailbox with the specified order from the provided mailboxes. The underlying mailboxes are not changed.
startPolling([Duration duration = defaultPollingDuration]) Future<void>
Starts listening for new incoming messages.
stopPolling() Future<void>
Stops listening for new messages.
stopPollingIfNeeded() Future<void>
Stops listening for new messages if this client is currently polling.
store(MessageSequence sequence, List<String> flags, {StoreAction action = StoreAction.add, int? unchangedSinceModSequence}) Future<void>
Stores the specified message flags for the given message sequence.
supports8BitEncoding() Future<bool>
Checks if the mail provider supports 8 bit encoded messages for new messages.
supportsFlagging() bool
Determines if message flags such as \Seen can be stored.
toString() String
A string representation of this object.
inherited
undoDeleteMessages(DeleteResult deleteResult) Future<DeleteResult>
Reverts the previous deleteResult, note that is only possible when deleteResult.isUndoable is true.
undoMoveMessages(MoveResult moveResult) Future<MoveResult>
Reverts the previous move operation, if possible.

Operators

operator ==(Object other) bool
The equality operator.
inherited