Skip to content
Docs

Sending email from your app

Turn on Send email and your app gets its own mail login, ready for password resets and receipts, sending only from your own domain.

Updated 18 Oct 20263 min read

Your app can send email (password resets, order receipts, a newsletter to your own customers) through our mail servers. Open your app, find Send email, and turn it on. That's all: there's nothing to copy.

What turning it on does

  • Your app gets its own mail login, used by that app only.

  • Its settings go into your app's variables, already named the way Laravel and most frameworks read them, and your app redeploys by itself to pick them up:

VariableValue
MAIL_MAILERsmtp
MAIL_HOST, SMTP_HOSTyour mail server's name, shown on the card
MAIL_PORT, SMTP_PORT587
MAIL_ENCRYPTIONtls
MAIL_USERNAME, SMTP_USERyour app's login
MAIL_PASSWORD, SMTP_PASSWORDits password, hidden

You can't change these by mistake: they're managed by Send email. New password replaces the password everywhere at once. Turning Send email off removes the login and the variables.

Choose the address your emails come from yourself, in your app (Laravel's MAIL_FROM_ADDRESS), at your project's own domain. Turn email on for it first, on the project's Email tab (your domain must be added and verified: see Add a domain); it sends once the email records are live, so Gmail and Outlook trust it. Emails from any other domain are refused, so nobody can send as your domain from another project, and nobody can send as someone else's from yours.

Limits

To keep our servers trusted by Gmail, Outlook and the rest:

  • a project sends up to 300 emails an hour and 3,000 a day; in an account's first 30 days, 50 an hour and 200 a day;

  • one email goes to at most 50 recipients.

An email over a limit gets "try again later", so your app's queue simply retries it. Nothing is lost. The project's Sent mail page shows your limits and what you've sent.

The delivery log

Sent mail shows every email: who it went to, from which address, when, and what happened (accepted, delivered, delayed, bounced, or marked as spam). We keep who and when, never what: there's no subject or message in it. Lines are kept 30 days.

Bounces, unsubscribes and pauses

  • An address that bounces for good, or whose owner marks your email as spam, is never written to again by your project.

  • Once a project sends 5,000 emails a day, each email to one person gets a one-click unsubscribe link, as Gmail and Yahoo require from bulk senders. Pressing it stops your project from emailing that address. Emails that already carry your own unsubscribe link keep it.

  • If your project suddenly sends far more than usual, or too many emails bounce or are marked as spam, its email is paused, and you're told at once by email and under the bell. It's often a contact form that spammers found, or a hacked plugin. Our team checks and lets it go again; tell support if the burst was expected.

Using another email service

You can still send through any email service you prefer, on port 587 or 465, with its details in Variables. Port 25 stays closed for every app. Those connections leave from your location's outgoing address, which other customers share, so an app that opens a great many of them is checked by our team.

Something not working?

  • "Email sending isn't set up yet": our mail servers aren't open in your location yet. Use another email service meanwhile.

  • "Turn email on for your domain first": Send email needs the project's email on, on its Email tab, with its records live.

  • Emails are refused with "not from your domains": change your app's From address to one at your project's own domain.

  • "Authentication failed": your app is still running with old settings. Redeploy it.