Halloween Sale 40% OFF ⏳ Ending soon! Grab Now

How to Send Newsletters from WordPress with Amazon SES Easily

Want to send newsletters from WordPress with Amazon SES without paying expensive monthly fees? You can run a complete newsletter program from your WordPress dashboard while paying Amazon SES roughly $0.10 to $0.16 per 1,000 emails. In this guide, you’ll learn how to set up Amazon SES with Virfice, a self-hosted email marketing plugin for WordPress.

We’ll walk you through the entire setup, from configuring Amazon SES on AWS and connecting it via SMTP to creating signup forms, sending email campaigns, setting up automations, and managing WordPress and WooCommerce system emails. Everything runs from your WordPress dashboard, so you can manage your email marketing without juggling multiple tools.

This setup gives you more control over your subscriber data while keeping email delivery costs low. Unlike hosted email marketing platforms that charge based on subscriber count, Amazon SES charges primarily for the emails you send, so growing your list doesn’t automatically increase your storage costs. With Virfice, you can also manage forms, newsletters, SMTP, automations, and email customization in one place.

What You Need to Send Newsletters from WordPress with Amazon SES

Before you begin, make sure your website runs WordPress 5.5 or newer and PHP 8.2 or newer, as required by Virfice. Install the free version of Virfice, and Virfice Pro if you need advanced features such as WooCommerce triggers, abandoned cart automation, and advanced conditions. WooCommerce is optional, but you’ll need version 8.0 or newer if you want to set up store automations and customize WooCommerce emails.

You’ll also need a domain you control, with access to its DNS settings through your domain registrar or Cloudflare, so you can add records such as CNAME, TXT, and MX. Create an AWS account with a valid payment method, and check the AWS Free Tier for available credits and eligibility. Finally, prepare a sending email address on your own domain, such as [email protected]. Avoid using Gmail, Yahoo, or Outlook addresses as your sender address.

About Amazon SES pricing: According to AWS’s announcement n July 21, 2026, new Amazon SES accounts start on the Essentials plan, which includes a deliverability dashboard. The Essentials plan costs approximately $0.16 per 1,000 emails, while the à la carte option costs approximately $0.10 per 1,000 emails, according to CloudBurn. You can switch to à la carte pricing through the SES console. At these rates, sending 10,000 newsletter emails per month costs approximately $1 to $1.60, excluding any additional applicable charges.

Part 1: Set up Amazon SES

This part happens entirely in AWS and your DNS. Budget 30 minutes of work plus up to 24 hours for AWS to approve production access.

How to Send Newsletters from WordPress with Amazon SES

Step 1: Pick one AWS region and stay in it

Sign in to the SES console and choose a region from the top-right menu, such as US East (N. Virginia) or Europe (Frankfurt). Identities, sending limits and SMTP endpoints are all per region. If you verify your domain in one region and connect SMTP to another, sending will fail.

Step 2: Verify Your Domain With DKIM

  1. Go to Configuration → Identities → Create identity.
  2. Choose Domain and enter your root domain, for example yourstore.com.
  3. Under Verifying your domain, keep Easy DKIM with RSA_2048_BIT.
  4. Click Create identity. SES shows three CNAME records.
  5. Add all three CNAMEs at your DNS provider. If your DNS is on Route 53, SES can add them for you. On Cloudflare, set the records to DNS only (grey cloud), not proxied.
  6. Wait until the identity status shows Verified. This usually takes minutes but can take up to 72 hours.

Step 3: Set a custom MAIL FROM domain (SPF alignment)

By default SES uses an amazonses.com bounce address, so SPF won’t align with your domain. Fix this:

  1. Open your verified identity → Custom MAIL FROM domain → Edit.
  2. Enter a subdomain you don’t use for anything else, such as mail.yourstore.com.
  3. Add the two records SES shows you:
TypeNameValue
MXmail.yourstore.com10 feedback-smtp.REGION.amazonses.com
TXTmail.yourstore.comv=spf1 include:amazonses.com ~all

Replace REGION with your region code, for example us-east-1.

Step 4: Publish a DMARC Record

Gmail and Yahoo require DMARC for bulk senders. Add one TXT record:

TypeNameValue
TXT_dmarc.yourstore.comv=DMARC1; p=none; rua=mailto:[email protected]

Start with p=none to monitor. After a few weeks of clean reports, move to p=quarantine.

Step 5: Request production access (leave the sandbox)

New SES accounts start in the sandbox: you can only send to verified addresses, and you’re capped at 200 emails per 24 hours and 1 email per second. That’s fine for testing, but not for a newsletter.

  1. Go to Account dashboard → Request production access.
  2. Mail type: Marketing (choose Transactional if you’ll mainly send WooCommerce order emails).
  3. Website URL: your store or blog.
  4. Use case: be specific. Explain that subscribers opt in through a form on your site, that you use double opt-in, that every email has an unsubscribe link, and that bounces and complaints are suppressed automatically.
  5. Submit. AWS usually replies within 24 hours.

Once approved, the dashboard shows your new daily quota and maximum send rate. Note both numbers; you’ll need them in Part 4.

While you wait, verify your own email address under Identities → Create identity → Email address. Sandbox accounts can send to verified addresses, so you can finish and test everything in Parts 2 to 4.

Step 6: Create SMTP credentials

  1. Go to SMTP settings in the left menu. Note the SMTP endpoint, for example email-smtp.us-east-1.amazonaws.com.
  2. Click Create SMTP credentials. AWS creates an IAM user with send-only permission.
  3. Download the credentials file. The SMTP password is shown only once.

The SMTP username and password are not your AWS login, and not an IAM access key. Only the credentials created on this screen work for SMTP.

Step 7: Keep bounce and complaint protection on

Under Configuration → Suppression list, confirm that the account-level suppression list covers both Bounces and Complaints. SES then refuses to send to addresses that hard-bounced or marked you as spam, which protects your sender reputation automatically.

Part 2: Install Virfice

  • In WordPress, go to Plugins → Add New, search for Virfice, then click Install Now and Activate.
Install Virfice
  • For Pro, download the ZIP from your Virfice account, go to Plugins → Add New → Upload Plugin, upload it and activate. Keep the free plugin active; Pro builds on top of it.
  • Enter your key under Virfice → License to receive updates.

A new Virfice menu appears in the dashboard with these screens: Dashboard, Campaigns, Templates, Forms, Automations, Audiences, System Emails, Analytics and Settings.

FeatureFreePro
Built-in SMTP, email builder, templatesYesYes
Forms with double opt-inYesYes
Campaigns, scheduling, resend to non-openersYesYes
Automation triggersForm Submitted, New SignupAdds User Birthday, User Logged In, Customer Account Created, 8 WooCommerce order triggers, Cart Abandoned
Automation actionsSend Email, Delay, Condition, Add to List, Add to TagAdds Change Role, Update Custom Field
ConditionsContact lists, tags, custom fields, email, submission and account datesAdds user role, plus order and cart conditions for the Pro triggers
WordPress and WooCommerce system emailsYesYes

Part 3: Connect Amazon SES to Virfice

Virfice has SMTP built in, so you don’t need WP Mail SMTP or any other mail plugin.

Step 1: Set your sender first

Go to Virfice → Settings → Email and fill in:

Send Newsletters from WordPress with Amazon SES
  • From name: your brand, for example “Rayan from YourStore”.
  • From email: an address on the domain you verified in SES, such as [email protected].
  • Reply-to name and Reply-to email: where replies should land. This can be a real inbox you check.

The From email must belong to your SES-verified domain. Virfice also skips the custom SMTP connection entirely if the From email is not a valid address, so set this before testing.

Step 2: Enter the SES SMTP details

Go to Virfice → Settings → SMTP and enter:

FieldValue
HostYour SES endpoint, for example email-smtp.us-east-1.amazonaws.com
Port587
EncryptionTLS
UsernameThe SMTP username from the credentials file
PasswordThe SMTP password from the credentials file

If your host blocks port 587, use 465 with SSL, or 2587 with TLS. SES supports all three.

Send Newsletters from WordPress with Amazon SES

Save the settings.

Part 4: Tune Virfice Settings for SES

The first four settings below decide whether your newsletters go out smoothly and stay legal; the fifth is branding.

1. Company details (required by anti-spam laws)

In Settings → Email, fill in Company name, Company address, City, Country and Company URL. CAN-SPAM and similar laws require a physical postal address in every marketing email. Virfice can insert these into your footers with placeholders, so you set them once.

2. Unsubscribe email template

The Unsubscribe email template in Settings → Email is added automatically to campaign and automation emails. The default reads “You are receiving this email because you subscribed to our mailing list” with an Unsubscribe link. Keep the {virfice_unsubscribe_url} placeholder in whatever wording you choose. Unsubscribed contacts move to the suppression list under Audiences and won’t be emailed again.

3. Sending Frequency (the CRON JOB setting)

Virfice sends campaigns in batches. In Settings → Email → Sending frequency, pick how many emails per batch (5 to 320) and how often a batch runs (every 1, 5, 10 or 20 minutes). The default is 10 emails every 1 minute. Virfice also pauses about one second between individual emails, so SES’s per-second limit is never the bottleneck.

Your situationSuggested settingApprox. emails per day
SES sandbox, testing5 emails / 1 minuteCapped at 200 by SES
New production account, first 2 weeks20 emails / 1 minuteUp to 28,800
Established list, shared hosting30 to 60 emails / 1 minute43,200 to 86,400
VPS with a real server cron60+ emails / 1 minuteCheck your SES daily quota first

Keep the daily total below your SES daily sending quota (shown on the SES account dashboard). Start low and raise the rate as your opens stay healthy. On shared hosting, large batches can hit PHP’s time limit because of the one-second pause between emails.

5. Brand settings and custom fields (optional, do once)

  • Settings → Brand: open Brand settings to design the shared header, footer and colors, and add your Social links (shown when an email has “Show social media icons” checked). These apply to the header and footer of every Virfice email.
Virfice brand settings
  • Settings → Advanced → Custom fields: add fields such as First name, City or Birthday (Text, Number, Date, Email, URL, Textarea or Dropdown). They become available in forms, contact imports, personalization and automation conditions.

Part 5: Create a Signup Form

A list you collect yourself, with double opt-in, is the single biggest factor in staying out of spam and keeping SES happy.

Step 1: Create Lists and Tags First

Go to Virfice → Audiences and click Add New List, for example “Newsletter”. Add tags too if you want to segment later, such as “Blog readers” or “Customers”. You can also import an existing list here with Import Contacts (CSV, with column mapping) — only import people who actually opted in.

Step 2: Build the Form

  1. Go to Virfice → Forms → Create form and give it a title, for example “Footer newsletter signup”.
  2. Pick a template, then edit the fields, text, button and colors in the builder. Add custom fields like First name if you created them in Part 4.
  3. Assign the form to your Newsletter list (and any tags), so every confirmed subscriber lands in the right audience.

Step 3: Turn On Double Opt-in

In the form settings, switch on Double opt-in. Virfice then emails each new subscriber a confirmation link and only adds them to your list after they click it. Configure:

  • Confirmation Email: the Subject, Preview text, Sender and Sender name. Click Edit Email to change the design.
  • Thank you page URL: the page people land on after clicking the confirmation link. Create a simple “You’re subscribed!” page in WordPress first and paste its URL here. Don’t leave it empty.

Double opt-in stops fake and mistyped addresses from entering your list. That keeps your bounce rate low, which is the metric AWS watches most closely.

Step 4: Embed the Form

Every form gets a shortcode, shown in the Forms list with a copy button:

[virfice_form id="1"]

Paste it anywhere shortcodes work:

  • Block editor: add a Shortcode block to a page or post.
  • Widgets / footer: add a Shortcode block to a widget area.
  • Elementor, Divi and other builders: use their Shortcode widget.

Visit the page, subscribe with your own email, confirm it, and check that you appear under Audiences in the right list.

Part 6: Create and Send your Newsletter

Step 1: Set Up the Campaign

Go to Virfice → Campaigns → Create campaign and fill in:

  • Campaign title: internal only, for example “October newsletter”.
  • Sender name and Sender email: prefilled from Settings. Keep the email on your SES-verified domain.
  • Subject and Preview text: the preview text is the grey line shown after the subject in most inboxes. Use it to add a second hook instead of repeating the subject.

Step 2: Choose Recipients

Under Recipients, add your lists or tags to Included Recipients. Use Excluded Recipients to leave people out, for example excluding the “Customers” tag from a first-purchase discount email. At least one list or tag must be included. Unsubscribed and suppressed contacts are skipped automatically.

Step 3: Design the Email

Pick a ready-made template from Templates or choose Start from scratch to open the visual builder. Drag in text, images, buttons, columns and ready-made blocks. Your brand header, footer and social icons from Part 4 are applied automatically.

Personalize with placeholders, such as the contact’s first name, so each subscriber sees their own name. Keep the design light: one main message, one clear button, and plenty of text compared to images, since image-only emails tend to land in spam.

Step 4: Test Before You Send

Click Preview Email to check desktop and mobile layouts, then Send test mail to yourself. In the test, check that:

  • links work and point to the right pages;
  • the unsubscribe link and company address appear in the footer;
  • Gmail’s Show original still shows SPF, DKIM and DMARC as PASS.

Step 5: Send Now or Schedule

Click Send Now, or Schedule to pick a future date and time. Scheduled campaigns can be rescheduled or cancelled until they start. Once scheduled, the subject, preview text and sender are locked.

Virfice then sends in batches according to your sending frequency setting. A list of 3,000 at 30 emails per minute takes about 100 minutes.

Step 6: Read the Results and Resend

Open the campaign or Virfice → Analytics to see sent, opened, clicked, bounced and failed counts. A few days later, use Resend to non openers with a new subject line to reach people who missed the first send. Open rates are approximate, because Apple Mail Privacy Protection and some email clients block or pre-load tracking pixels.

Part 7: Automate a Welcome Series

An automation sends the right email at the right time without you pressing send. The most valuable one for a newsletter is a welcome series for new subscribers.

How Virfice Automations Work

Each automation has one Trigger followed by steps. Free includes the Form Submitted and New Signup triggers; Pro adds birthday, login, WooCommerce order and abandoned-cart triggers. Steps can be:

  • Send Email: sends a designed email. Sender name and email are filled in from Settings.
  • Delay: waits minutes, hours or days before the next step.
  • Condition: checks the contact (list, tags, custom field, email and more) and continues only when it matches.
  • Add to List / Add to Tag: moves the contact into an audience for later targeting.

Use Form Submitted for newsletter signups. New Signup fires when someone registers a WordPress user account, which is a different event.

Build it

  1. Go to Virfice → Automations → Create automation. Pick the Send a thank-you after form submission recipe, or start from scratch.
  2. Choose the Form Submitted trigger and, under Select which forms trigger this automation, pick your signup form. With double opt-in on, the trigger fires only after the subscriber confirms.
  3. Keep Trigger once per person on, so someone who signs up twice doesn’t get the series twice.
  4. Add the steps:
    1. Send Email: “Welcome! Here’s what to expect” — introduce yourself, say how often you’ll email, and deliver any promised freebie.
    2. Delay: 2 days.
    3. Send Email: your three best articles or products.
    4. Delay: 3 days.
    5. Add to Tag: “Welcomed”, so you can exclude or target this group in campaigns.
  5. Design each email, send a test, then click Activate.

Automation emails go through the same SES connection and the same cron job as campaigns, so the real cron from Part 4 matters here too: without it, a “2 days” delay can run late on a quiet site.

More Ideas (Pro)

  • Cart Abandoned: fires 15 minutes after a shopper leaves items in the cart, and cancels itself if they buy or empty the cart.
  • Order Completed: thank-you email, then a review request 7 days later.
  • User Birthday: a birthday coupon, using a Birthday date custom field.

Part 8: Brand Your WordPress and WooCommerce System Emails

Your newsletter is now on-brand, but password resets and order emails still look like plain WordPress defaults. Virfice lets you redesign them with the same builder and send them through SES.

Which Emails You can Customize

EmailSent toWhen
New accountCustomer or new userAccount is created
Reset passwordUserPassword reset is requested
New orderStore adminOrder is placed
Cancelled orderStore adminOrder is cancelled
Failed orderStore adminPayment fails
Order on holdCustomerOrder is put on hold
Processing orderCustomerOrder is paid and processing
Completed orderCustomerOrder is completed
Refunded orderCustomerOrder is refunded
Customer invoiceCustomerYou send order details or a payment link
Customer noteCustomerYou add a note to an order

The order emails need WooCommerce 8.0 or newer. New account and reset password work on any WordPress site.

Customize an Email

  1. Go to Virfice → System Emails.
  2. Click Edit on an email and switch on Virfice template (“Enable to use the Virfice template and email builder”).
  3. Edit the design and wording in the builder. Order tables, customer names, addresses and links are filled in automatically by placeholders, so you never type order data by hand.
  4. Preview it with a real order, then send a test to yourself.
  5. Save. From now on, Virfice’s design replaces the WooCommerce default for that email.

Your brand header, footer, colors and social links from Settings → Brand apply here too, so newsletters and order emails look like they come from the same store.

Make Sure these Emails Actually Use SES

WordPress and WooCommerce send these emails automatically. However, when you send newsletters from WordPress with Amazon SES using Virfice, you can also route your transactional emails through Amazon SES. To do this, turn on Enable for whole site under Settings → SMTP (Part 3). If this option is disabled and no other SMTP plugin is active, order confirmations may fall back to your hosting provider’s mail server and potentially land in spam.

If WooCommerce order emails are your primary concern, select Transactional when requesting Amazon SES production access. If you plan to send both newsletters and transactional emails through Virfice, explain both use cases in your request.

Show less

Keep Your Emails Out of Spam

SES watches two numbers on your account, and Gmail and Yahoo watch a third. Stay well below these and your newsletters keep landing in the inbox.

MetricWhere it’s measuredSafe targetDanger zone
Bounce rateSES Account dashboard → Reputation metricsUnder 2%5% triggers an SES review; 10% can pause sending
Complaint rateSES Account dashboard → Reputation metricsUnder 0.1%0.5% can pause sending
Spam rate at GmailGoogle Postmaster ToolsUnder 0.1%0.3% and above hurts inbox placement

Habits That Keep These Numbers Low

  • Warm up gradually. For the first two weeks, send to your most engaged subscribers first and use a low sending frequency. Double the volume every few days if bounces and complaints stay low.
  • Never buy or scrape lists. Purchased lists are the fastest way to get an SES account paused.
  • Use double opt-in on every form (Part 5).
  • Send consistently. A newsletter every week or two keeps people expecting you. Going silent for months and then emailing everyone causes complaints.
  • Make unsubscribing easy. A clear unsubscribe link is better than a spam complaint. Virfice adds it to every campaign and automation email.
  • Clean your list. Every few months, create a tag for contacts who haven’t opened in six months, send them one “Still want to hear from us?” email, then exclude or remove those who don’t respond.
  • Write like a person. Avoid ALL-CAPS subjects, too many exclamation marks, link shorteners and image-only emails.
  • Monitor. Set up Google Postmaster Tools for your domain, and check the SES reputation metrics weekly. On the Essentials plan, the SES deliverability dashboard is included.

Troubleshooting

ProblemLikely causeFix
Test email never arrivesStill in the SES sandbox and the recipient isn’t verifiedVerify the recipient address in SES, or wait for production access
“535 Authentication Credentials Invalid”Using your AWS password or an IAM access keyCreate SMTP credentials in SES → SMTP settings and use those
“Email address is not verified”From email isn’t on your verified domain, or the domain is verified in another regionUse an address on the verified domain; match the SMTP host region to the identity’s region
Connection timeoutYour host blocks the SMTP portTry 465 with SSL, or 2587 with TLS; otherwise ask your host to open the port
Campaign stuck at “running” or sends very slowlyWP-Cron only runs when someone visits your siteSet up a real cron job (Part 4)
Only some emails go out each dayDaily total exceeds your SES quotaLower the sending frequency, or request a quota increase in SES
Order or password emails don’t use SESEnable for whole site is offTurn it on in Settings → SMTP
Emails land in spamSPF, DKIM or DMARC not passing, or poor list qualityCheck Show original in Gmail; fix DNS; clean the list and use double opt-in
Double opt-in link opens a blank or wrong pageNo Thank you page URL set on the formCreate a thank-you page and add its URL in the form settings
Two plugins conflict over emailAnother SMTP plugin is also activeUse one SMTP plugin only; Virfice’s built-in SMTP replaces the others

Frequently Asked Questions

Q: How much does it cost to send 10,000 newsletters a month?

Ans: About $1 to $1.60 in SES charges, depending on your SES pricing plan. Virfice doesn’t charge per subscriber, so a bigger list doesn’t raise your software bill.

Q: Do I need a separate SMTP plugin like WP Mail SMTP?

Ans: No. Virfice has SMTP built in. Running two SMTP plugins at once can cause conflicts.

Q: Can I use Virfice without WooCommerce?

Ans: Yes. Forms, newsletters, campaigns, automations and the WordPress account and password emails all work on any WordPress site. WooCommerce adds order emails and store triggers.

Q: Will sending newsletters slow down my website?

Ans: Sending runs in small background batches every minute, controlled by your sending frequency. On shared hosting, keep batches modest (20 to 60 per minute).

Q: Can I import my list from Mailchimp or MailerLite?

Ans: Yes. Export a CSV from your old tool, then use Audiences → Import Contacts and map the columns. Import only subscribers who opted in.

Q: Where is my subscriber data stored?

Ans: In your own WordPress database. Nothing is shared with a third-party marketing platform. SES only sees each email as it’s sent.

Q: How long does SES production access take?

Ans: Usually within 24 hours. A clear use case that mentions opt-in, unsubscribe links and bounce handling gets approved fastest.

Wrapping up

You now have everything you need to send newsletters from WordPress with Amazon SES using Virfice. From configuring Amazon SES with SPF, DKIM, and DMARC to creating signup forms, scheduling newsletters, setting up welcome automations, and customizing WooCommerce emails, Virfice brings your entire email marketing workflow into one WordPress dashboard.

With Virfice handling email campaigns, automations, and subscriber management, and Amazon SES providing reliable, cost-effective email delivery, you get a complete email marketing solution without expensive third-party platforms. You also maintain full control over your subscriber data.

The best way to get started is to send your first newsletter to a small group of engaged subscribers, monitor your Amazon SES reputation metrics, and gradually increase your sending frequency.

If you’re looking for an affordable and flexible way to send newsletters from WordPress with Amazon SES, Virfice makes it easy to manage everything directly from your WordPress dashboard.

Get Virfice · Virfice documentation

Amie Suzan
Amie Suzan

As a seasoned WordPress technical writer with five years of experience, I am passionate about WordPress and web development. I also enjoy traveling, particularly solo trips, which allow me to explore new places and gain fresh perspectives.

Articles: 159

Leave a Reply

Your email address will not be published. Required fields are marked *