Rust
Rust
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 Rust Downloads
// 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.
let imap = chilkat::Imap::new();
imap.set_ssl(true);
imap.set_port(993);
if imap.connect("imap.example.com").is_err() {
println!("{}", imap.last_error_text());
return;
}
if imap.login("user@example.com", "myPassword").is_err() {
println!("{}", imap.last_error_text());
return;
}
if imap.select_mailbox("Inbox").is_err() {
println!("{}", imap.last_error_text());
return;
}
// 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.
let headers_only = true;
let use_uid = false;
let seq_num = 1;
let email = chilkat::Email::new();
if imap.fetch_email(headers_only, seq_num as u32, use_uid, &email).is_err() {
println!("{}", imap.last_error_text());
return;
}
let size_bytes = imap.get_mail_size(&email);
println!("Total message size: {} bytes", size_bytes);
if imap.disconnect().is_err() {
println!("{}", imap.last_error_text());
return;
}