Email on your own domain, and sending mail from your app

Create hello@yourdomain on BrewInTH, add MX, SPF, DKIM and DMARC, read it in Webmail or on your phone, and let your app send mail with one button.
Once your site is live on your own domain, the next wish is usually an address like hello@yourshop.com that looks more trustworthy than a free mailbox — and a site that can send mail itself: sign-up confirmations, password resets, a note when a new order arrives. That is where many people get stuck on SMTP settings, or find their messages in the spam folder.
This article shows how to create mailboxes on your own domain in BrewInTH, set up the DNS records for sending and receiving, read mail in Webmail or on your phone, and let your app send mail with one button. There is also a prompt that gets your AI to wire email into your code.
In short
✅ Mailboxes live under your own verified domain and come with paid plans (3 mailboxes from Starter up)
✅ Create them on the Email page, then add the MX, SPF, DKIM and DMARC records at your DNS provider
✅ Read and send in Webmail or any mail app (IMAP / SMTP)
✅ *Use in the app (write MAIL_)** sets a fresh password and writes seven SMTP settings into your App settings; then redeploy
✅ Port 25 is blocked; apps send through port 587 or 465 only
Before you start
- A paid plan — the Free plan has no mailboxes and cannot connect its own domain.
- Your own domain, connected to the project and verified — if you do not have one yet, see Your own domain on BrewInTH.
- Access to the domain's DNS — at the registrar or wherever your DNS is managed, such as Cloudflare.
Mailboxes and the largest size per mailbox, by plan (current figures; see pricing for prices):
- Starter / Seed — 3 mailboxes, up to 100 MB each
- Maker — 10 mailboxes, up to 200 MB each
- Growth — 25 mailboxes, up to 500 MB each
- Pro — 50 mailboxes, up to 1,000 MB each
Creating a mailbox, step by step

- Open the Email menu (or the project's Email tab).
- Enter a Mailbox name such as
helloornoreply, choose the Domain, set Quota (MB) and press Add mailbox. - The initial password is shown once. Press Copy password and hide and store it somewhere safe. The mailbox is usable when its status is ready, normally within minutes.
- Open Mail DNS records for your domain and add every record at your DNS provider (each value has a copy button).
If the project's domain is www.yourshop.com, the address is still name@yourshop.com, never with www..
What each DNS record does
- MX tells the world where mail for your domain should be delivered. No MX, no incoming mail.
- SPF (TXT) lists the servers allowed to send mail for your domain.
- DKIM (TXT) is a digital signature on every message, so receivers can check it was not altered on the way.
- DMARC (TXT) tells receivers what to do with mail that claims your domain but fails the checks. BrewInTH starts it at quarantine.
With all four in place, your outgoing mail has a much better chance of reaching the inbox instead of spam. DNS changes can take from a few minutes to several hours. On Cloudflare, mail records have no proxy option anyway; add the copied values as they are.
Reading mail in Webmail or a mail app
When the mailbox is ready, press Open Webmail to read and send in the browser, or add the account to a mail app on your computer or phone (Outlook, Apple Mail, Thunderbird, the Gmail app's "other account") with the values the Email page shows:
- IMAP — port 993 (SSL/TLS)
- POP3 — port 995 (SSL/TLS)
- SMTP — port 465 (SSL/TLS) or 587 (STARTTLS)
- Username — the full address, such as
hello@yourshop.com - Password — that mailbox's password
The server name for each protocol is under In a mail app and Webmail on the Email page. To change a password, press Password / quota / delete on the mailbox (new passwords need at least 12 characters).
Letting your site or app send mail

Create a separate mailbox for the app, such as noreply@, and press *Use in the app (write MAIL_)** on it. BrewInTH will:
- Set a new password for that mailbox, which nobody has to see.
- Write seven settings into the project's App settings:
MAIL_MAILER,MAIL_HOST,MAIL_PORT,MAIL_ENCRYPTION,MAIL_USERNAME,MAIL_PASSWORD,MAIL_FROM_ADDRESS. - The new password is live within 1-2 minutes. Then redeploy the project (or let your AI deploy) so the app loads the settings.
Worth knowing: the button changes the mailbox password. If you also read that mailbox in a mail app, you would have to enter the new password there — another reason to keep a separate mailbox for the app.
The names follow Laravel, which reads them as they are. For other stacks, such as Node.js with Nodemailer or Python, ask your AI to read these names in the code. Outgoing port 25 is blocked on BrewInTH, so apps must send through the mailbox's SMTP on port 587 or 465.
A prompt to wire up email
(paste the ready-made message from BrewInTH here)
I pressed "Use in the app" for noreply@myshop.com; the MAIL_* values are in the project's app settings.
Please make the site send email.
- Read the SMTP settings from MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, MAIL_USERNAME, MAIL_PASSWORD
and use MAIL_FROM_ADDRESS as the sender; never put the password in the code
- Send a confirmation email on sign-up and a password-reset email
- If sending fails, log the error but keep the page working
- Redeploy and send a real test email to my-address@gmail.com
If it fails, read the log and fix it until it works.
Mail not arriving, or landing in spam
- Check all four DNS records, especially SPF and DKIM values that were cut short or picked up extra spaces.
- Two SPF records — a domain should have one SPF record (
v=spf1 …). If you used another mail service before, merge them into one. - Sender does not match —
MAIL_FROM_ADDRESSmust be the address of the sending mailbox. - DNS just changed — wait a little, try again, and test with more than one provider (Gmail, Outlook).
- Read the app's log on the Logs tab, or copy it to your AI.
Watch the video
▶ From a new project to a live site (1:30, in Thai)
Watch on YouTube
FAQ
Can I get an @brewinth address?
No. Mailboxes can only be created under your own verified domain; the free BrewInTH site address cannot carry email.
Can an app on the Free plan send email?
The Free plan has no BrewInTH mailboxes. To send mail from your app, upgrade to a paid plan and connect your own domain first.
What happens when a mailbox is full?
A mailbox at its quota may stop accepting new mail. Each mailbox shows its usage bar; raise the quota (up to your plan's maximum) or delete old mail in Webmail.
Can I use this address in Gmail?
Yes. Add it as another account in the Gmail app or any mail app that supports IMAP, with the values from the Email page.
How do I delete a mailbox?
Press Password / quota / delete on the mailbox, type its name to confirm and press Delete mailbox. Save important mail first.
Summary
Email on your own domain in BrewInTH starts with a verified domain: create mailboxes on the Email page, add the MX, SPF, DKIM and DMARC records, and use them in Webmail or any mail app right away. For a site that sends mail, create a noreply@ mailbox, press Use in the app, redeploy, and let your AI wire up the code.
See the plans that include email →
