Delphi ActiveX
Delphi ActiveX
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 ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
http: TChilkatHttp;
bd: TChilkatBinData;
respStatusCode: Integer;
begin
success := 0;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
// 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
http.SetRequestHeader('Authorization','PutAuthorizationTokenHere');
// The messageId and attachmentId are contained in the response from reading the mailbox messages.
http.SetUrlVar('messageId','989448');
http.SetUrlVar('attachmentId','424857');
http.SetUrlVar('setReadFlag','false');
// Download the attachment data into bd.
bd := TChilkatBinData.Create(Self);
success := http.QuickGetBd('https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}',bd.ControlInterface);
if (success = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
respStatusCode := http.LastStatus;
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(http.LastHeader);
// For errors, the response body contains an error message instead of the actual attachment data.
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(bd.GetString('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 := bd.WriteFile('qa_output/starfish.jpg');
if (success <> 1) then
begin
Memo1.Lines.Add('Failed to save attachment file.');
end
else
begin
Memo1.Lines.Add('Success.');
end;
end;