Sample code for 30+ languages & platforms
Dart

Append a MIME Message to an IMAP Mailbox

See more IMAP Examples

Demonstrates the Chilkat Imap.AppendMime method, which uploads a complete RFC 822/MIME message to a mailbox. The first argument is the destination mailbox name and the second is the MIME text. This example obtains the MIME from an Email object and uploads it to Drafts.

Background: Use AppendMime when you already hold a message's raw source — a .eml file, a message you assembled, or one you received. Chilkat sends the text exactly as supplied, without normalizing line endings or re-encoding headers, so every header and MIME boundary is preserved verbatim. The supplied text must be plain text (no raw non-text binary bytes).

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // Demonstrates the Imap.AppendMime method, which uploads a complete MIME message to a mailbox.
  // The 1st argument is the destination mailbox name and the 2nd is the MIME text.

  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;
  }

  // Build the email to be uploaded.
  final email = CkEmail();
  email.subject = 'Meeting agenda';
  email.from = 'Alice <alice@example.com>';
  email.addTo('Bob', 'bob@example.com');
  email.body = 'Let\'s meet at 10am to review the agenda.';

  // Obtain the MIME text to upload.  Here it is generated from the Email, but it could equally
  // be read from a .eml file.
  final String mimeText;
  try {
    mimeText = email.getMime();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Append (upload) the MIME to the "Drafts" mailbox.
  try {
    imap.appendMime('Drafts', mimeText);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Appended UID: ${imap.appendUid}');

  try {
    imap.disconnect();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }
}