Sample code for 30+ languages & platforms
Zig

Set a MIME Body from a File

See more MIME Examples

Demonstrates the Chilkat Mime.SetBodyFromFile method, which reads a local file and sets it as the body, choosing content headers from the filename extension. The only argument is the file path.

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: This is the one-call way to turn a file into a MIME part: Chilkat reads the bytes and infers the Content-Type and transfer encoding from the extension — .jpg becomes image/jpeg with base64, .txt a text type, and so on. It is the natural building block for adding an attachment, usually followed by setting a Content-Disposition and filename.

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 Mime.SetBodyFromFile method, which reads a local file and sets it as the body,
    // choosing content headers based on the filename extension.  The only argument is the file path.

    const mime = try chilkat.Mime.init();
    defer mime.deinit();

    // The Content-Type and encoding are set from the ".jpg" extension (image/jpeg, base64).
    mime.setBodyFromFile("qa_data/photo.jpg") catch {
        std.debug.print("{s}\n", .{try mime.getLastErrorText(alloc)});
        return;
    };

    std.debug.print("Content-Type: {s}\n", .{try mime.getContentType(alloc)});
    std.debug.print("Encoding: {s}\n", .{try mime.getEncoding(alloc)});
}