All AWS API require that every request be signed. However, the signature needs to conform to what is called AWS signature version 4, (which is different from hashing)
http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
My advice is that you shouldn't try to replicate that process, but use AWS SDK
http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.html
Answer from Gonfva on Stack OverflowAll AWS API require that every request be signed. However, the signature needs to conform to what is called AWS signature version 4, (which is different from hashing)
http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
My advice is that you shouldn't try to replicate that process, but use AWS SDK
http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.html
Update
At some point after this answer was written, most of the information about Signature Version 3 has been removed from the AWS docs. The documentation at the link mentioned below is still present, but the page no longer describes how to actually sign requests using Signature Version 3. It does still mention that SES supports both Signature V3 and V4, but it also states that Signature V4 is recommended.
For the historically curious, the instructions for signing SES requests using Signature Version 3 can still be found at an archived version of the page but using (or switching to) Signature Version 4 would be the future-proof course of action, as it is highly unlikely for Signature V3 to be supported if SES launches any new regions in the future (Signature V2 has not been supported in any region launched since 2014, but SES does not have endpoints in any of those regions).
Signature V3 had significant limitations compared to Signature V4, so it may at some point (or may already) be deprecated and may eventually be discontinued.
tl;dr: Always use Signature Version 4.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/query-interface-authentication.html explains how to use Signature Version 3 with SES to sign requests you will submit over HTTPS.
This is an algorithm that is different from most other AWS services, but is very simple to implement. The standard Signature V4 is also supported by SES.
How to send email with Amazon SES using a pure HTTP request? - Stack Overflow
Amazon Simple Email Service (SES) - Should I use SMTP Interface or SES API? - Stack Overflow
We built an open-source, self-hosted email API - an alternative to AWS SES, Mailgun, Sendgrid
API Mailer for AWS SES
Videos
The SES API ties you to AWS, the SMTP interface... well it's SMTP.
Do you foresee, in the future the need to move off AWS? Does your application already speak SMTP to another email server?
Depending on your current application it may be easier to go with SMTP.
If you're starting from scratch and don't foresee any need to move off AWS you should probably go with the SES API.
From Amazon's documentation on improving throughput, one advantage the API is the option of using persistent HTTP connections for increase throughput. This is not available to the SMTP option.
Apart from this, I have not been able to find any other major differences between the API and SMTP.