Tcl
Tcl
MedTunnel: Get Message Attachment
See more MedTunnel Examples
Get a specific attachment of a message. The MessageId and AttachmentId are obtained from the "Get Mailbox Messages" example.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Implements the following CURL command:
# curl -X GET -k
# -H "Authorization:PutAuthorizationTokenHere"
# https://server.medtunnel.com/medtunnelmsg/api/Message/GetAttachment?messageid=989448&attachmentid=424857&setreadflag=false
# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code
CkHttp_SetRequestHeader $http "Authorization" "PutAuthorizationTokenHere"
# The messageId and attachmentId are contained in the response from reading the mailbox messages.
CkHttp_SetUrlVar $http "messageId" "989448"
CkHttp_SetUrlVar $http "attachmentId" "424857"
CkHttp_SetUrlVar $http "setReadFlag" "false"
# Download the attachment data into bd.
set bd [new_CkBinData]
set success [CkHttp_QuickGetBd $http "https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}" $bd]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkBinData $bd
exit
}
set respStatusCode [CkHttp_get_LastStatus $http]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
puts "Response Header:"
puts [CkHttp_lastHeader $http]
# For errors, the response body contains an error message instead of the actual attachment data.
puts "Response Body:"
puts [CkBinData_getString $bd utf-8]
puts "Failed."
delete_CkHttp $http
delete_CkBinData $bd
exit
}
# Save the attachment data.
# The attachment filename is also contained in the response from reading the mailbox messages.
set success [CkBinData_WriteFile $bd "qa_output/starfish.jpg"]
if {$success != 1} then {
puts "Failed to save attachment file."
} else {
puts "Success."
}
delete_CkHttp $http
delete_CkBinData $bd