Delphi client for Amazon Simple Email Service (AWS SES)
Pascal
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
tests
.gitignore
AmazonEmailMessage.pas
AmazonEmailService.pas
AmazonEmailServiceConfiguration.pas
AmazonEmailServiceRegions.pas
AmazonEmailServiceRequests.pas
BuildQueryParameters.pas
EncodeQueryParams.pas
LICENSE
PopulateResponseInfo.pas
PrepareRequestSignature.pas
README.md

README.md

delphi-aws-ses

Amazon Simple Email Service (AWS SES) library for Delphi applications.

Using

If you call the class method TAmazonEmailService.SendMail the library will look for the following environment variables: AWS_REGION, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.

var
  EmailMessage: TEmailMessage;
begin
  EmailMessage.Recipients := TArray<string>.Create('email@example.com', 'email2@example.com');
  EmailMessage.FromName := 'John Doe'
  EmailMessage.FromAddress := 'email@mail.com';
  EmailMessage.Subject := 'This is the subject line with HTML.';
  EmailMessage.Body := 'Hello. I hope you are having a good day.';

  TAmazonEmailService.SendMail(EmailMessage);
end;

You may also manually instantiate the class and pass parameters to the constructor method:

var
  AmazonEmailService: TAmazonEmailService;
begin
  // ...
  AmazonEmailService := TAmazonEmailService.Create(AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY);
  try
    AmazonEmailService.Send(EmailMessage);    
  finally
    AmazonEmailService.Free;
  end;
  

Body Type

Declaration: TBodyType = (btHTML, btText);

The email body can be sent in the following formats:

  • HTML - If the recipient's email client can interpret HTML, the body can include formatted text and hyperlinks
  • Plain text - If the recipient's email client is text-based, the body must not contain any nonprintable characters.

By default, the email will have HTML-enabled. To use text-based email will need you to set the EmailBody parameter values to btText.

Response Info

It's also possible to get the response information, setting as a parameter to the SendMail method a variable of type TCloudResponseInfo.

var
  ResponseInfo: TCloudResponseInfo;
begin
  // ...
  TAmazonEmailService.SendMail(EmailMessage, ResponseInfo);
  // ...

For example, if the email was sent successfully will be returned:

Response.StatusCode = 200
Response.StatusMessage = 'HTTP/1.1 200 OK'

Executing the tests

You need DUnitX do run the tests.

  • Clone the DUnitX repository locally
  • Define a DUNITX environment variable, pointing to the DUnitX clone directory.

Contributing

If you got something that's worth including into the project please submit a Pull Request or open an issue for further discussion.

License

This software is open source, licensed under the The MIT License (MIT). See LICENSE for details.