Who is this for?
This setup is intended for:- Teams running self‑hosted Autorply.
- Users who want to use Amazon SES to receive inbound emails.
- Workspaces that want to configure forwarding rules rather than using IMAP/OAuth connections to bring emails into Autorply.
Architecture
At a high level, the flow looks like this:
- An email is sent to your domain (e.g., support@yourdomain.com).
- Amazon SES receives the email.
- SES forwards the message to an SNS Topic.
- SNS publishes the message payload to a Autorply email ingress endpoint.
- Autorply processes the payload and creates/updates a conversation.
Prerequisites
Before you begin, you should have:- Access to AWS SES, SNS, Route53 (or your DNS provider).
- A self‑hosted Autorply installation reachable over HTTPS.
Step 1: Verify Your Domain in Amazon SES
Amazon SES must verify that you own the domain before it can receive mail.- Log in to AWS Console → SES → Identities.
- Click Create Identity.
- Choose Domain.
- Enter the domain you want to receive email for.
- Amazon SES will show DNS records you must add:
- DKIM (CNAME) records
- SPF (TXT) record
- DMARC (TXT) record (optional but recommended)
- Add all records to your DNS provider.
- Wait for the identity status to become verified.
Step 2: Configure MX Records to Route Email to SES
SES must become the inbound email handler for your domain.- In SES, open Configuration → Email Receiving.
- Locate the MX record value for your region (example: 10 inbound-smtp.us-east-1.amazonaws.com).
- Go to your DNS provider.
- Add an MX record:
- Priority: 10
- Value:
inbound-smtp.<region>.amazonaws.com
Step 3: Configure SES to Publish Inbound Emails to SNS
Autorply reads incoming messages via SNS notifications. Go to SES → Email Receiving → Rule Sets.
Create a Rule Set if you don’t have one.
Add a new rule:
- Recipients → Add your inbound email (e.g. support@yourdomain.com) or ignore this field since it would forward every email to SNS (which is better if you have more than one email channel)
- Actions → Publish to Amazon SNS topic
- Select your SNS topic.
- Make sure that you select the Encoding as UTF-8.
Save and enable the rule.
Note: You don’t have to turn on Transport Layer Security (TLS) or Spam and virus scanning for this setup. Now SES will publish every inbound email event to your SNS topic.
Step 4: Configure Autorply Environment Variables
Before creating the SNS subscription, you must configure two environment variables in your Autorply installation:Step 5: Create SNS Subscription to Forward to Autorply
SNS needs to send the email payload directly to Autorply. Go to SNS → Topics. Open the topic you created. Click Create Subscription.
Set:
- Protocol: HTTPS
- Endpoint: Your Autorply email ingress endpoint
https://chatwoot.example.com/rails/action_mailbox/ses/inbound_emails
Save.
Note: SNS will send a confirmation request. Autorply will automatically confirm the subscription.
Step 6: Add Email Channel in Autorply
- Go to your Autorply account. Settings → Inboxes → Add Inbox.
- Choose Email -> Other Providers.
- Use any email address from the domain that is configured in SES.
Troubleshooting
Emails not appearing in Autorply:- Check SES → SNS → Subscription delivery logs.
- Check SNS subscription status.
- Check Autorply logs for any errors.
- Ensure Autorply server is reachable publicly.
- Check if MX records propagated.
- Ensure Autorply server is reachable publicly.
- Verify system time and SSL certificates on your server. If you are testing this in local environment, you can use tools like ngrok to expose your Autorply server to the internet. Make sure that you are using
openssl<=3.5.

