Sample code for 30+ languages & platforms
PHP

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 PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Imap;
use Chilkat2\MessageSet;
use Chilkat2\StringBuilder;

// 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).

$imap = new Imap();

$imap->Ssl = true;
$imap->Port = 993;

try {
    $imap->Connect('imap.example.com');

    $imap->Login('user@example.com', 'myPassword');

    $imap->SelectMailbox('Inbox');

    // Search for the message ids to download, returning UIDs.
    $wantUids = true;
    $msgSet = new MessageSet();
    $imap->QueryMbx('ALL', $wantUids, $msgSet);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

if ($msgSet->Count > 0) {
    $uid = $msgSet->GetId(0);

    // Download the message's MIME into a StringBuilder.  The id is a UID.
    $useUid = true;
    $sbMime = new StringBuilder();
    try {
        $imap->FetchSingleAsMimeSb($uid, $useUid, $sbMime);
    } catch (\Chilkat2\Exception $e) {
        echo $e->getMessage(), "\n";
        exit;
    }

    echo 'MIME length: ', $sbMime->Length, " chars\n";
}

try {
    $imap->Disconnect();
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}