API Mailer for AWS SES

توسط

API Mailer for AWS SES replaces wp_mail() with a direct Amazon SES API integration (SendRawEmail). There is no SMTP layer or PHPMailer handoff in the critical path, reducing overhead and improving reliability.

The plugin focuses on correctness, performance, and operational clarity:
– Direct AWS SigV4 signed requests to SES
– Minimal overhead in the wp_mail() hook
– Optional background queue with Action Scheduler or wp_cron fallback
– Optional logging via WooCommerce logger or PHP error_log
– Clean, PSR-4 structured codebase

Key Features

  1. Direct SES API (SendRawEmail) integration — no SMTP required.
  2. Background sending queue with Action Scheduler or wp_cron fallback.
  3. Tiny-args queueing with job IDs to keep cron payloads small and private.
  4. Configurable rate limiting per second to stay under SES send rate.
  5. From/Reply-To handling with optional forced From and custom X-* headers.
  6. Test tab to send a test email and a Status tab to fetch SES GetSendQuota.
  7. Logging via WooCommerce logger or PHP error_log, disabled by default.
  8. Credentials from wp-config (constants) or saved settings.
  9. Lightweight, minimal I/O, no Composer dependency.
  10. Uninstall cleanup toggle to remove settings and queued jobs on deletion.

Why It’s High Performance

  • Avoids SMTP for the send path; uses PHPMailer only for MIME construction, then sends via SES API directly.
  • Background queue returns control to the request immediately when enabled.
  • Job payloads are stored server-side and referenced by a small job_id to avoid large serialized cron arguments.
  • Logging is optional and disabled by default to keep I/O low.

Configuration

Credentials in wp-config (recommended)

Define the following constants above “That’s all, stop editing!” in wp-config.php, then enable “Read AWS credentials from wp-config” in the plugin settings.

define('SES_MAILER_ACCESS_KEY', 'YOUR_ACCESS_KEY_ID');
define('SES_MAILER_SECRET_KEY', 'YOUR_SECRET_ACCESS_KEY');
define('SES_MAILER_REGION', 'us-east-1');

When this mode is enabled, the Access Key, Secret, and Region fields are cleared, disabled, and ignored.

Background Sending

  • When enabled, emails are queued and sent out of band by Action Scheduler if available, or by wp_cron as a fallback.
  • The plugin stores the full email payload in an option keyed by ses_mailer_job_{uuid} (autoload = no) and schedules a tiny cron/action with only job_id.
  • Retries: up to 3 total attempts with exponential backoff (60s, then 120s).
  • For consistent cron execution on low-traffic sites, configure a real system cron to call wp-cron.php regularly.

Rate Limiting

  • A per-email pause is applied based on the configured send rate to avoid exceeding SES limits.

Logging

  • When enabled, log entries route to WooCommerce Status Logs (source: api-mailer-for-aws-ses) if WooCommerce is active, or to the PHP error log otherwise.
  • Logging is disabled by default. Uncheck “Disable logging” in settings to enable.

External Services

  • This plugin connects to Amazon Simple Email Service (AWS SES) at https://email.{region}.amazonaws.com to send email and to fetch sending quotas.
  • Data sent on each email: recipients, subject, message body, headers, attachments, and your AWS access key ID (signed via AWS SigV4); required to deliver the email.
  • Data sent when checking quotas: your AWS access key ID and a signed request; no recipient data is sent.
  • Service terms: https://aws.amazon.com/service-terms/ — Privacy: https://aws.amazon.com/privacy/

Translations

  • Text domain: api-mailer-for-aws-ses
  • Translation template: languages/api-mailer-for-aws-ses.pot
  • Example: Danish languages/api-mailer-for-aws-ses-da_DK.po (compile to .mo for runtime)

About the Author

API Mailer for AWS SES is built and maintained by beltoft.net.

  1. Upload the plugin to wp-content/plugins/ or install via the Plugins screen.
  2. Activate the plugin.
  3. Go to Settings API Mailer for AWS SES.
  4. Provide AWS credentials and Region in one of two ways:
    • Saved settings (fields on the Settings screen), or
    • From wp-config (recommended for production).
  5. Optionally enable background sending and configure rate limit.
  6. Use the Test tab to send a test email.

سوالات متداول

Q: I get 403 SignatureDoesNotMatch.
A: Check Access Key/Secret and ensure the Region matches your SES setup. Verify your “From” address is verified in SES.

Q: Do test emails appear in Logs?
A: Yes. Test emails are tagged and logged unless logging is disabled in settings.

Q: Do I need Action Scheduler installed?
A: No. If unavailable, the plugin falls back to wp_cron automatically. A real cron is recommended for consistent processing.

Q: Can I keep credentials out of the database?
A: Yes. Use the wp-config constants and enable “Read AWS credentials from wp-config”.

تصویری برای این آیتم موجود نیست.
نظری برای این آیتم موجود نیست.
0 0 رای ها
امتیازدهی
اشتراک در
اطلاع از
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
نسخه حجم فایل SHA256 تغییرات دانلود
1.4 39 کیلوبایت -
دانلود
×
★★★★★
★★★★★
5.0 /5 (1 نظر)

قیمت:

رایگان

نگارش

1.4

آخرین انتشار

19 اردیبهشت 1405

آخرین بروزرسانی

2 ماه پیش

نصب های فعال

-

نگارش وردپرس

وردپرس 5.6+

تست شده از نسخه

وردپرس 6.9.4

نگارش PHP

PHP 7.4+

تگ ها

نسخه ها

1 نسخه