Sample code for 30+ languages & platforms
Zig Requires Chilkat v11.0.0+

Read All Email from POP3 Inbox by Message Numbers

Demonstrates how to read all of the email from a POP3 inbox by fetching each email by it's message number.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    const mailman = try chilkat.MailMan.init();
    defer mailman.deinit();

    // Set the POP3 server's hostname
    mailman.setMailHost("pop.example.com");

    // Set the POP3 login/password.
    mailman.setPopUsername("myLogin");
    mailman.setPopPassword("myPassword");

    // Get the number of messages in the mailbox.
    const num_messages = mailman.getMailboxCount();

    // Message numbers are specific to a POP3 session.
    // If a maildrop (i.e. inbox)  contains 10 messages,
    // the message numbers will be 1, 2, 3, ... 10.
    // If message number 1 is deleted and a new POP3 session
    // is established, there will be 9 messages numbered 1, 2, 3, ... 9.

    var i: i32 = 1;

    const email = try chilkat.Email.init();
    defer email.deinit();
    while (i <= num_messages) {
        // Fetch by the message number (not by the UIDL)
        mailman.fetchOne(false, 0, i, email) catch {
            std.debug.print("{s}\n", .{try mailman.getLastErrorText(alloc)});
            return;
        };

        std.debug.print("{s}: {s}\n\n", .{ try email.getFrom(alloc), try email.getSubject(alloc) });

        i = i + 1;
    }
}