Sample code for 30+ languages & platforms
Zig

Add a String Attachment to an Email

See more Email Object Examples

Demonstrates the Chilkat Email object's AddStringAttachment method, which adds an attachment directly from an in-memory string — no file needs to exist on disk. The 1st argument is the filename that is written into the MIME (it is not a path to a file that is read), and the 2nd argument is the text that becomes the attachment's body. In this example we build a simple email, attach a small CSV file named people.csv straight from a string, and then print the resulting MIME so you can see the attachment embedded in the message.

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 demonstrates the Email object's AddStringAttachment method.
    // AddStringAttachment adds an attachment directly from an in-memory string.
    // The 1st argument is the filename to be placed in the MIME (not a file to be read).
    // The 2nd argument is the text content that becomes the attachment body.

    const email = try chilkat.Email.init();
    defer email.deinit();

    email.setSubject("Email with a string attachment");
    email.setBody("See the attached CSV file.");
    email.setFrom("mary@example.com");
    email.addTo("Joe", "joe@example.com") catch {};

    // The text content of the attachment.
    const csv_data = "id,name\r\n1,Alice\r\n2,Bob\r\n";

    // Add the string as an attachment named "people.csv".
    email.addStringAttachment("people.csv", csv_data) catch {};

    // Show the full MIME of the email, which now includes the attachment.
    std.debug.print("{s}\n", .{try email.getMime(alloc)});
}