Sample code for 30+ languages & platforms
PHP

Get the Total Size of an IMAP Message

See more IMAP Examples

Demonstrates the Chilkat Imap.GetMailSize method, which returns the complete server-reported size of a message in bytes, including attachment data. The only argument is the Email. This example fetches only the headers and prints the full message size.

Background: The server reports each message's total size, so this value is available even when only the headers were downloaded. That lets a client show a size column in a message list, sort by size, or warn the user before downloading an unusually large message — all without fetching the full body first.

Chilkat PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Email;
use Chilkat2\Imap;

// Demonstrates the Imap.GetMailSize method, which returns the complete server-reported size
// of a message in bytes, including attachments.  The only argument is the Email.

$imap = new Imap();

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

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

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

    $imap->SelectMailbox('Inbox');

    // Fetch only the message headers.  Attachment bodies are NOT downloaded, but the ckx-imap-*
    // metadata describing the attachments is present, so the attachment info methods still work.
    $headersOnly = true;
    $useUid = false;
    $seqNum = 1;
    $email = new Email();
    $imap->FetchEmail($headersOnly, $seqNum, $useUid, $email);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

$sizeBytes = $imap->GetMailSize($email);
echo 'Total message size: ', $sizeBytes, " bytes\n";

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