Zig
Zig
Outlook -- List Attachments for a Specific Message
See more Outlook Examples
Demonstrates how to list the attachments for a particular email message.Note: This example requires Chilkat v9.5.0.67 or greater.
This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
var success: bool = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
// Use your previously obtained access token here:
// See the following examples for getting an access token:
// Get Microsoft Graph OAuth2 Access Token (Azure AD v2.0 Endpoint).
// Get Microsoft Graph OAuth2 Access Token (Azure AD Endpoint).
// Refresh Access Token (Azure AD v2.0 Endpoint).
// Refresh Access Token (Azure AD Endpoint).
http.setAuthToken("MICROSOFT_GRAPH_ACCESS_TOKEN");
const sb_response = try chilkat.StringBuilder.init();
defer sb_response.deinit();
// Sends: GET /users/{user_id | userPrincipalName}/messages/{message_id}/attachments
// Note: It is also possible to use the literal string "me" for the current logged-on user.
// For example: GET /me/messages/{message_id}/attachments
http.clearUrlVars();
http.setUrlVar("userPrincipalName", "chilkatsoft@outlook.com") catch {};
// Assume we already have a message ID from previously listing the messages in a folder
const message_id = "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAACnwqJUAABUcG0qWqkmQYqWLHQataQxAACnwrnOAAA=";
http.setUrlVar("message_id", message_id) catch {};
// Send the request to list the messages.
success = if (http.quickGetSb("https://graph.microsoft.com/v1.0/users/{$userPrincipalName}/messages/{$message_id}/attachments", sb_response)) true else |_| false;
if ((!success) and (http.getLastStatus() == 0)) {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
}
const json = try chilkat.JsonObject.init();
defer json.deinit();
json.loadSb(sb_response) catch {};
json.setEmitCompact(false);
std.debug.print("Status code = {d}\n", .{http.getLastStatus()});
if (http.getLastStatus() != 200) {
std.debug.print("{s}\n", .{try json.emit(alloc)});
std.debug.print("Failed.\n", .{});
}
sb_response.clear();
json.emitSb(sb_response) catch {};
sb_response.writeFile("qa_output/attachments.txt", "utf-8", false) catch {};
std.debug.print("OK\n", .{});
}