Delphi DLL
Delphi DLL
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 Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, BinData, Http;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
bd: HCkBinData;
respStatusCode: Integer;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := CkHttp_Create();
// 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.
bd := CkBinData_Create();
success := CkHttp_QuickGetBd(http,'https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}',bd);
if (success = False) then
begin
Memo1.Lines.Add(CkHttp__lastErrorText(http));
Exit;
end;
respStatusCode := CkHttp_getLastStatus(http);
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(CkHttp__lastHeader(http));
// For errors, the response body contains an error message instead of the actual attachment data.
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(CkBinData__getString(bd,'utf-8'));
Memo1.Lines.Add('Failed.');
Exit;
end;
// Save the attachment data.
// The attachment filename is also contained in the response from reading the mailbox messages.
success := CkBinData_WriteFile(bd,'qa_output/starfish.jpg');
if (success <> True) then
begin
Memo1.Lines.Add('Failed to save attachment file.');
end
else
begin
Memo1.Lines.Add('Success.');
end;
CkHttp_Dispose(http);
CkBinData_Dispose(bd);
end;