Sample code for 30+ languages & platforms
Delphi ActiveX

Example: Email.GetDsnInfo method

See more Email Object Examples

Demonstrates how to call the GetDsnInfo method.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
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;
email: TChilkatEmail;
json: TChilkatJsonObject;
strVal: WideString;
reporting_mta: WideString;
action: WideString;
status: WideString;
remote_mta: WideString;
x_supplementary_info: WideString;
x_display_name: WideString;
i: Integer;
count: Integer;

begin
success := 0;

email := TChilkatEmail.Create(Self);

success := email.LoadEml('qa_data/eml/sample_multipart_report.eml');
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

json := TChilkatJsonObject.Create(Self);
success := email.GetDsnInfo(json.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(email.LastErrorText);
    Exit;
  end;

json.EmitCompact := 0;
Memo1.Lines.Add(json.Emit());

// Sample output:

// {
//   "reporting-mta": "dns; Exchange2016.example.com",
//   "final-recipient": [
//     "herb.butterworth1247692846@gmail.com"
//   ],
//   "action": "failed",
//   "status": "5.1.1",
//   "remote-mta": "dns; mx.google.com",
//   "x-supplementary-info": "<mx.google.com #5.1.1 smtp;550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1  https://support.google.com/mail/?p=NoSuchUser o8-20020a056870968800b001b55816bea9si2188132oaq.70 - gsmtp>",
//   "x-display-name": "herb.butterworth1247692846@gmail.com"
// }

// Code for parsing the JSON:

reporting_mta := json.StringOf('reporting-mta');
action := json.StringOf('action');
status := json.StringOf('status');
remote_mta := json.StringOf('remote-mta');
x_supplementary_info := json.StringOf('x-supplementary-info');
x_display_name := json.StringOf('x-display-name');
i := 0;
count := json.SizeOfArray('final-recipient');
while i < count do
  begin
    json.I := i;
    strVal := json.StringOf('final-recipient[i]');
    i := i + 1;
  end;
end;