Sample code for 30+ languages & platforms
Zig

Create a Reply Email

See more Email Object Examples

Demonstrates the Chilkat Email.ToReply method, which generates a reply email with updated header and body fields so it can be sent as a reply. Attachments are excluded from the reply, but attached messages are included. The source email is not modified. This example creates a reply and prints its MIME.

Background: Replying is more than swapping sender and recipient: the To is set from the original's reply address, the subject gets an Re: prefix, the original text is quoted, and threading headers (In-Reply-To, References) are added so mail clients group the conversation. ToReply assembles all of that, leaving a message you can edit and send. Dropping attachments is the usual reply convention — you rarely echo the sender's files back to them.

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();

    // Demonstrates the ToReply method, which generates a reply email with updated header and
    // body fields ready to send as a reply.  Attachments are excluded from the reply, but
    // attached messages are included.  The source email is not modified.

    const email = try chilkat.Email.init();
    defer email.deinit();
    email.setSubject("Project update");
    email.setFrom("alice@example.com");
    email.addTo("Bob", "bob@example.com") catch {};
    email.setBody("Here is the project update.");

    // Create a reply email based on this message.
    const reply = try chilkat.Email.init();
    defer reply.deinit();

    email.toReply(reply) catch {
        std.debug.print("{s}\n", .{try email.getLastErrorText(alloc)});
        return;
    };

    // The reply is addressed and quoted, ready to edit and send.
    std.debug.print("{s}\n", .{try reply.getMime(alloc)});
}