Dashboard

← Back to Guides

Email Setup (Resend)

Set up transactional email via Resend — booking confirmations, tour reminders, review requests, and recovery emails.

Why Resend?

Resend is a developer-friendly transactional email service with excellent deliverability. The free tier allows 3,000 emails/month and 100/day — more than enough to start. Emails land in inbox (not spam) when your domain is properly verified.

Free tier

3,000 emails/month

Paid from

$20/month (50k emails)

Setup time

~15 minutes

Step 1: Create a Resend Account

  1. Go to resend.com and sign up
  2. Verify your email address
  3. On the dashboard, click DomainsAdd Domain
  4. Enter bestphuketguide.com
  5. Resend will show you DNS records to add to Cloudflare

Step 2: Verify Your Domain (DNS Setup)

Add these DNS records to your Cloudflare DNS panel for bestphuketguide.com:

SPF record (TXT):

Type: TXT Name: @ (or bestphuketguide.com) Value: v=spf1 include:amazonses.com ~all

DKIM record (TXT) — Resend provides the exact values:

Type: TXT Name: resend._domainkey Value: (provided by Resend — copy exactly)

Optional: custom MAIL FROM (improves deliverability):

Type: MX Name: send.bestphuketguide.com Value: feedback-smtp.us-east-1.amazonses.com Priority: 10
Tip: DNS changes propagate in 5-60 minutes. Resend will automatically check and show a green "Verified" status once the records are live.

Step 3: Create an API Key

  1. In Resend dashboard, go to API KeysCreate API Key
  2. Name it bestphuketguide-production
  3. Set permission: Full access
  4. Copy the key (starts with re_)
  5. Add it to your Cloudflare Worker secrets:
wrangler secret put RESEND_API_KEY # Paste the key when prompted
Warning: Never commit the Resend API key to git. Anyone with the key can send emails from your domain.

Email Templates Overview

The platform sends these automated emails:

Booking Confirmation

To: Customer

Trigger: When a booking is confirmed (payment received)

Content: Booking ref, tour name, date, guests, total paid, meeting point, departure time, what to bring

Booking Notification

To: Admin (your email)

Trigger: When a new booking is created

Content: Same booking details — so you see every new booking immediately

Tour Reminder

To: Customer

Trigger: Day before the tour at 6 PM Phuket time

Content: Reminder of tour details, meeting point, what to bring, contact number

Review Request

To: Customer

Trigger: 24 hours after the tour date

Content: Thank you message + link to review page

Booking Recovery

To: Customer

Trigger: When a customer abandons checkout (Stripe session expired)

Content: Reminder of the tour they were looking at + booking link

Email From Address

Emails are sent from your verified domain. Configure the from address in Settings → Notifications:

From: Best Phuket Guide <bookings@bestphuketguide.com> Reply-To: info@bestphuketguide.com
Tip: Use a subdomain like bookings@bestphuketguide.com for transactional email so replies to booking emails go to your main inbox.

Testing Email Delivery

  1. Go to Settings → Notifications
  2. Find the Test Email section
  3. Enter your email address and select a template (e.g. Booking Confirmation)
  4. Click Send Test
  5. Check your inbox — should arrive within 30 seconds
  6. Also check spam folder on first test — if it lands there, check DNS records

Check delivery logs in:

Troubleshooting

Emails landing in spam?

  • • Check that SPF and DKIM DNS records are correctly set and verified in Resend
  • • Make sure the from address uses your verified domain
  • • Avoid spam trigger words in subject lines (FREE, URGENT, CLICK HERE)
  • • Ask a few early customers to mark the email as "not spam" — this improves domain reputation

Emails not sending at all?

  • • Check the Email Log page — if status is "dev mode", RESEND_API_KEY is not set
  • • Run wrangler secret list to verify the secret exists
  • • Check Resend dashboard for API errors

Hit the free tier limit?

Upgrade to Resend's paid plan ($20/month for 50,000 emails). With 1,000+ bookings per month you'll hit the 3,000/month free limit. Budget ~$20/month for email.

Related Guides