Zig
Zig
SMTP Connect and Authenticate
Demonstrates how to connect and then authenticate with an SMTP server.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();
mailman.setSmtpHost("smtp.mail.us-west-2.awsapps.com");
mailman.setSmtpSsl(true);
mailman.setSmtpPort(465);
mailman.smtpConnect() catch {
std.debug.print("{s}\n", .{try mailman.getLastErrorText(alloc)});
return;
};
mailman.setSmtpUsername("john@example.com");
mailman.setSmtpPassword("the_password");
mailman.smtpAuthenticate() catch {
std.debug.print("{s}\n", .{try mailman.getLastErrorText(alloc)});
return;
};
std.debug.print("Authenticated!\n", .{});
std.debug.print("{s}\n", .{try mailman.getSmtpSessionLog(alloc)});
// Sample session log:
// 220 smtp.us-west-2.mail.awsapps.com ESMTP Amazon WorkMail SMTP Service
// EHLO SLICE<CRLF>
// 250-smtp.us-west-2.mail.awsapps.com
// 250-8BITMIME
// 250-AUTH PLAIN LOGIN
// 250 Ok
// AUTH LOGIN<CRLF>
// 334 VXNlcm5hbWU6
// am9obkBleGFtcGxlLmNvbQ==<CRLF>
// 334 UGFzc3dvcmQ6
// {PasswordOrCredentials}
// 235 Authentication successful.
}