Viesti Sign in

Viesti vs Amazon SES

Amazon SES is AWS's pay-per-use email service: SMTP and API sending, templates, event publishing, dedicated IPs and inbound processing, with no monthly fee on à la carte pricing. New accounts start in a sandbox in each AWS Region. Viesti does less, for transactional mail only, with a free plan, a $5 plan for 50,000 emails, and no sandbox review or IAM setup.

Amazon SES and Viesti compared

Amazon SES details come from the AWS pricing page and SES documentation, linked in each row. Checked 26 September 2026. Prices in US dollars.

Viesti Amazon SES
Pricing $5/month for 50,000 emails per billing cycle, then $0.10 per 1,000 ($0.0001 per email); paid sending has no volume cap À la carte: $0.10 per 1,000 outbound emails plus $0.12 per GB of attachments, no monthly fee. Plans: Essentials at $0.16 per 1,000; Pro at $0.22 per 1,000 plus $105 a month per account and Region. New accounts start on Essentials and can switch to à la carte.
Free allowance 75 emails per UTC day and 2,000 per UTC month, with no time limit Up to $200 in AWS Free Tier credits for new AWS customers, usable on SES
What counts as one email One accepted message with up to 50 recipients; rejected mail is not counted Each recipient of an outbound message
Before you can send Verify a domain; then any recipient, within plan limits. Every message from a new workspace or domain is screened before relay. Sandbox in each Region: verified recipients only, 200 messages per 24 hours, 1 per second, until AWS grants production access; initial response within 24 hours
SMTP smtp.viesti.email, port 587 (STARTTLS) or 465 (implicit TLS); AUTH PLAIN with username apikey and your API key as the password email-smtp.<region>.amazonaws.com, ports 25, 587 or 2587 (STARTTLS) or 465, 2465 (TLS Wrapper); SMTP credentials created through IAM, one set per Region
HTTP API POST /v1/send with JSON from, to, subject, text and html, or a whole MIME message in raw; no SDKs, no batch endpoint SES API v2 SendEmail, and SendBulkEmail for templated mail
IP pools Separate shared pools for free and for paid workspaces; marketing mail is not accepted on any plan Shared with other SES users by default; dedicated IPs isolate your reputation and can separate it by email type
Dedicated IPs Dedicated plan: an IP pool of your own with hands-on warmup, custom pricing, up to 120,000 emails an hour and 2,000,000 a day; ask [email protected] Standard: $24.95 per IP per month. Managed: $15 a month per account plus $0.08 per 1,000 emails up to 10 million.
Domain authentication Ownership TXT, DKIM key delegated by CNAME (replaced without DNS changes), include:spf.viesti.email in SPF and a DMARC policy; optional Return-Path CNAME for SPF alignment Easy DKIM: three CNAME records; a custom MAIL FROM subdomain with an MX and an SPF TXT record for SPF alignment
Open and click tracking None Through configuration sets and event publishing
Delivery events None; each recipient's outcome is in the dashboard's Activity log Sends, deliveries, bounces, complaints, opens and clicks published to CloudWatch, Data Firehose, Pinpoint, SNS or EventBridge
Templates None; send rendered HTML and text Stored and inline templates
Inbound email None Receipt rules deliver to S3, SNS, WorkMail and more, in Regions that support receiving
Marketing mail Not accepted Accepted; the production access request asks whether you mainly send marketing or transactional mail

Choose Amazon SES if

  • You already run on AWS and want email on the same bill, with IAM controlling access.
  • You send more than Viesti's free plan allows but fewer than 50,000 emails a month, and cost decides: on à la carte pricing SES costs less than Viesti's $5 plan. Above that, both charge $0.10 per 1,000, though SES counts recipients and adds $0.12 per GB of attachments.
  • You need inbound processing, stored templates, or delivery events streamed into other AWS services.
  • You need dedicated IPs at a published price, or you send marketing mail as well.

Choose Viesti if

  • You want to start without a sandbox review or IAM: sign in with GitHub or Google, verify a domain, send.
  • You want delivery status without building it: the Activity log shows each recipient's outcome, and hard bounces and complaints are suppressed automatically, with no event destinations to set up.
  • You want a free plan that does not depend on AWS credits: 75 emails a day and 2,000 a month.
  • You want SPF alignment from one optional CNAME instead of an MX and a TXT record on a MAIL FROM subdomain.
  • You want your provider to keep marketing mail off your shared IPs.

Migrate from Amazon SES to Viesti

1. Create a workspace and an API key

Sign in with GitHub or Google; the first sign-in creates your workspace. Create an API key on the Credentials page and keep it in your secret store, for example as VIESTI_API_KEY. The quickstart walks through the whole setup.

2. Verify your sending domain

Add the domain on the Sending domains page and publish the records it lists (details in DNS records):

  • TXT _viesti.yourdomain.com, which proves ownership.
  • CNAME v1._domainkey.yourdomain.com, which delegates DKIM signing to dkim.viesti.email.
  • include:spf.viesti.email in the domain's SPF record. The page shows a merged value that keeps the includes you already publish; a domain must have only one SPF record.
  • A DMARC record at _dmarc.yourdomain.com, only if no DMARC policy covers the domain yet.
  • Optional: CNAME viesti.yourdomain.com to bounce.viesti.email, so bounces return to your own domain and SPF aligns with DMARC.

Viesti's record names do not clash with SES's Easy DKIM CNAMEs or your MAIL FROM subdomain, so both services can send while you switch.

3. Switch your SMTP settings

Host:     smtp.viesti.email
Port:     587 (STARTTLS) or 465 (implicit TLS)
Username: apikey
Password: your Viesti API key

Viesti accepts AUTH PLAIN only, and only after TLS; mail libraries pick it automatically. To try the settings before you deploy, send a test message with curl:

printf 'From: [email protected]\r\nTo: [email protected]\r\nSubject: Viesti test\r\n\r\nSent through Viesti.\r\n' |
  curl -sS --ssl-reqd smtp://smtp.viesti.email:587 \
    --user "apikey:$VIESTI_API_KEY" \
    --mail-from [email protected] --mail-rcpt [email protected] \
    --upload-file -

The command prints nothing when Viesti accepts the message, which then shows in the Activity log; a rejected login or recipient prints curl's error. SMTP covers ports, limits and error replies.

This replaces the email-smtp.<region>.amazonaws.com host and the IAM SMTP username and password. Remove the X-SES-CONFIGURATION-SET and X-SES-MESSAGE-TAGS headers: Viesti does not read them and delivers them to recipients unchanged.

4. Or switch your API calls

If you call SendEmail through an AWS SDK, replace the call with your framework's SMTP mailer or with Viesti's HTTP API. A message you already build as raw MIME goes into Viesti's raw field.

Viesti's endpoint is POST https://viesti.email/v1/send with Authorization: Bearer $VIESTI_API_KEY and a JSON body of from, to (an array of up to 50 addresses), subject, text and html. It rejects any other field with 400 invalid JSON. For Cc, Bcc, Reply-To, custom headers or attachments, build the MIME message yourself, send it in raw, and list every recipient, Cc and Bcc included, in to. See the HTTP API reference.

5. Replace what Viesti does not do

  • Templates: render the message in your app and send the finished HTML and text.
  • Webhooks: there are none. The Activity log shows each recipient's outcome, and hard bounces and complaints add the recipient to your suppression list automatically; see bounces and suppressions.
  • Open and click tracking: Viesti does not rewrite links or add pixels, so there is nothing to configure or remove.
  • Inbound email: keep SES receipt rules, or move receiving to another service; Viesti does not receive mail for your domains.

6. Carry over suppressions

Export the addresses your current provider suppresses (hard bounces, complaints, unsubscribes) and add each one on Viesti's Suppressions page with a reason. The page adds one address at a time. Viesti then refuses mail to those addresses when you submit it.

7. Remove the SES setup

Once no workload in your AWS account sends from this domain through SES, wait a few days for late bounces, then delete the three Easy DKIM CNAME records, the MX and SPF records on the MAIL FROM subdomain, and the IAM user that holds the SMTP credentials. Keep your DMARC record; Viesti checks it.