Sample code for 30+ languages & platforms
Delphi DLL

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 DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
json: HCkJsonObject;
resp: HCkHttpResponse;

begin
success := False;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

http := CkHttp_Create();

// 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 := CkJsonObject_Create();
CkJsonObject_UpdateString(json,'personalizations[0].to[0].email','recipient@example.com');
CkJsonObject_UpdateString(json,'personalizations[0].bcc[0].email','recipient2@example2.com');
CkJsonObject_UpdateString(json,'from.email','sendeexampexample@example.com');
CkJsonObject_UpdateString(json,'subject','Hello, World!');
CkJsonObject_UpdateString(json,'content[0].type','text/plain');
CkJsonObject_UpdateString(json,'content[0].value','Heya!');

// Adds the "Authorization: Bearer YOUR_API_KEY" header.
CkHttp_putAuthToken(http,'YOUR_API_KEY');

resp := CkHttpResponse_Create();
success := CkHttp_HttpJson(http,'POST','https://api.sendgrid.com/v3/mail/send',json,'application/json',resp);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

if (CkHttp_getLastMethodSuccess(http) <> True) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
  end
else
  begin
    Memo1.Lines.Add('response status code: ' + IntToStr(CkHttpResponse_getStatusCode(resp)));
    // 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(CkHttpResponse__bodyStr(resp));
  end;

CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);

end;