Dart
Dart
Fetch a Single Message's MIME into a StringBuilder
See more IMAP Examples
Demonstrates the Chilkat Imap.FetchSingleAsMimeSb method, which downloads one message's MIME into a StringBuilder. The first argument is the message id, the second (bUid) selects UID vs sequence number, and the third is the StringBuilder, which is cleared first. This example downloads a message by UID and prints the MIME length.
Background: Chilkat interprets the received MIME as UTF-8. Messages using Base64 or quoted-printable transfer encoding are safe because their encoded bytes are ASCII. Raw
8bit or binary content, or unencoded text in a charset such as ISO-8859-1 or Shift_JIS, can be misinterpreted — in those cases use FetchSingleBd to get the exact bytes.Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// Demonstrates the Imap.FetchSingleAsMimeSb method, which downloads one message's MIME into a
// StringBuilder. The 1st argument is the message id, the 2nd (bUid) selects UID vs sequence
// number, and the 3rd is the StringBuilder (cleared first).
final imap = CkImap();
imap.ssl = true;
imap.port = 993;
try {
imap.connect('imap.example.com');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
try {
imap.login('user@example.com', 'myPassword');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
try {
imap.selectMailbox('Inbox');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Search for the message ids to download, returning UIDs.
final wantUids = true;
final msgSet = CkMessageSet();
try {
imap.queryMbx('ALL', wantUids, msgSet);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
if (msgSet.count > 0) {
final uid = msgSet.getId(0);
// Download the message's MIME into a StringBuilder. The id is a UID.
final useUid = true;
final sbMime = CkStringBuilder();
try {
imap.fetchSingleAsMimeSb(uid, useUid, sbMime);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
print('MIME length: ${sbMime.length} chars');
}
try {
imap.disconnect();
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
}