FeaturesEmails

Emails

You don’t have to use Mailgun, but you’ll need an email tool to to setup magic login links, abandoned carts emails, etc…

💡

Mailgun silently removed their “pay-as-you-go” flex tier from their pricing page, but it’s still there. Start a free trial for the 35$ tier, then cancel it. You’ll be downgraded to the “pay as you go” free tier. If you send < 1000 emails/mo you”ll pay 1$/mo.

Prefer to use Resend ? Here’s an excellent tutorial made by our top community member, Bill.

Setup

  1. Create a new account on Mailgun
  2. In [Sending] click [Domains] then [Add New Domain]. It’s recommended to add a subdomain like mail.yourdomain.com.
💡

If you pick the EU region, add the URL below to the Mailgun client setup in libs/mailgun.js right under username: "api":

url: "https://api.eu.mailgun.net/"

  1. Do all the DNS verification steps. If you use a subdomain, make sure it’s reflected in your DNS records

  2. Add extra DMARC for better deliverability: TXT | \_dmarc.mail.yourdomain.com | v=DMARC1; p=none

  3. Go to [Domain Settings] then [SMTP Credentials] then [Reset Passsword], choose [Automatic] and then [Create Password]

  4. Click [Copy] at the bottom right of the modal. In .env.local, set EMAIL_SERVER to: smtp://postmaster@[mail.yourdomain.com]: [copied_password]@smtp.mailgun.org:587 (without the brackets)

  5. In [Sending API Keys] click [Create sending key] and add it to .env.local as MAILGUN_API_KEY

  6. (skip if do not need to receive emails) In [Receiving] click [Create Route]. Select [Match Recipient] and add the email you want to send from. (i.e. name@mail.yourdomain.com). Make sure to match the email you set up at mailgun.supportEmail in the config.js file. Forward to https://[your-domain].com/api/webhook/mailgun. Click [Create Route].
    Then add your receiving email (I use my gmail for instance) in mailgun.forwardREpliesTo in config.js.

    💡

    Check your records are valid on MxToolbox (enter your subdomain if you used one)








Sending emails

There are 2 ways to send emails:

1/ SMTP: Emails sent for magic login links will be sent using SMTP, for instance.

2/ Mailgun API: To send any other emails, use the sendEmail() function in libs/mailgun.js.

Receiving emails

Mailgun doesn’t forward emails automatically, nor store them.

So we created a route that match emails sent to our support email (mailgun.supportEmail in config.js) and forward them to our API (your-domain.com/api/webhook/mailgun) which forwards them to our forwardRepliesTo email in config.js.

It automatically adds the sender in reply-to so you can reply directly from your inbox.


Description of image

Checklist to avoid the spam folder