Sample code for 30+ languages & platforms
Delphi ActiveX

SendGrid Send Email with Additional BCC Recipient

See more SendGrid Examples

Sends an email to a recipient, but also with an additional BCC recipient.

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;
http: TChilkatHttp;
json: TChilkatJsonObject;
resp: TChilkatHttpResponse;

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);

// The following JSON is sent in the request body.

// {
//   "personalizations": [
//     {
//       "to": [
//         {
//           "email": "recipient@example.com"
//         }
//       ]
//       "bcc": [
//         {
//           "email": "recipient2@example2.com"
//         }
//       ]
//     }
//   ],
//   "from": {
//     "email": "sendeexampexample@example.com"
//   },
//   "subject": "Hello, World!",
//   "content": [
//     {
//       "type": "text/plain",
//       "value": "Heya!"
//     }
//   ]
// }

json := TChilkatJsonObject.Create(Self);
json.UpdateString('personalizations[0].to[0].email','recipient@example.com');
json.UpdateString('personalizations[0].bcc[0].email','recipient2@example2.com');
json.UpdateString('from.email','sendeexampexample@example.com');
json.UpdateString('subject','Hello, World!');
json.UpdateString('content[0].type','text/plain');
json.UpdateString('content[0].value','Heya!');

// Adds the "Authorization: Bearer YOUR_API_KEY" header.
http.AuthToken := 'YOUR_API_KEY';

resp := TChilkatHttpResponse.Create(Self);
success := http.HttpJson('POST','https://api.sendgrid.com/v3/mail/send',json.ControlInterface,'application/json',resp.ControlInterface);
if (success = 0) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
    Exit;
  end;

if (http.LastMethodSuccess <> 1) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
  end
else
  begin
    Memo1.Lines.Add('response status code: ' + IntToStr(resp.StatusCode));
    // Display the response.
    // If successful, the response code is 202 and the response body string is empty.
    // (The response body string may also be empty for error response codes.)
    Memo1.Lines.Add(resp.BodyStr);
  end;
end;