

v2.2.0 Amazon SES/SNS bounce integration

Webhook:
  index.php?option=com_job_recommendations&task=ses.webhook

Configure in the component:
  Amazon SNS Topic ARN = the exact ARN of the SNS topic receiving SES events.

SNS should subscribe the HTTPS webhook endpoint to the topic. SNS sends a
SubscriptionConfirmation POST; the endpoint validates the SNS signature and
then visits the trusted SubscribeURL to confirm the subscription.

Security:
  - HTTPS only for the public endpoint.
  - SNS SignatureVersion 1 and 2 are verified.
  - SigningCertURL must be HTTPS and an amazonaws.com certificate URL.
  - TopicArn is checked against the component setting when configured.
  - SES event processing is idempotent using #__recommend_ses_events.

Bounce policy:
  PERMANENT bounce -> record + block email + set subscribed_email=0 and
  subscription_active=0.
  TRANSIENT bounce -> record only; do not unsubscribe.
  COMPLAINT -> record + block email + set subscribed_email=0 and
  subscription_active=0.
  DELIVERY/SEND/DELIVERY_DELAY -> log/audit only.

AWS:
  Configure SES event publishing to SNS for BOUNCE, COMPLAINT, DELIVERY,
  DELIVERY_DELAY and SEND. Then subscribe the Joomla HTTPS webhook to that
  SNS topic. SNS HTTP/S endpoints must be confirmed before notifications are
  delivered.
