Zig Requires Chilkat v11.0.0+
Zig
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
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;
}
}