Time: 20 minutes with Resend, and up to a day if you verify a domain
OpenMasjidOS uses email for two things: telling you when something breaks, and letting your apps send receipts to donors and parents.
There are two ways to provide it. Pick one.
| Resend | Your existing email | |
|---|---|---|
| Set-up effort | Paste one key | Find the SMTP details |
| Reliability for receipts | Better | Depends on the provider |
| Cost | Free for a few thousand messages a month | Already paid for |
Resend shows the domain verified and the key created.
Then put it into the dashboard, as in Email and alerts.
Resend asks you to add a few records to your domain's DNS. Those records are how your domain tells the world that Resend is allowed to send on its behalf. Without them, mail from your masjid is likely to be treated as spam.
You add them in Cloudflare, under DNS for your domain. Copy each value exactly.
You need four things from whoever provides your masjid's email: the SMTP host, the port, the username and the password.
| Provider | Host | Port |
|---|---|---|
| Google Workspace | smtp.gmail.com |
587 |
| Microsoft 365 | smtp.office365.com |
587 |
| Anything else | Ask them, or search their help pages for "SMTP settings" |
Then fill those into the dashboard, as in Email and alerts.
You have either a Resend API key, or an SMTP host, port, username and password. The From address is at a domain your masjid owns.
| What you see | Why | What to do |
|---|---|---|
| Resend will not verify the domain. | A DNS record is missing or has a typo. | Compare each record in Cloudflare against Resend, character for character. Cloudflare sometimes adds your domain to the end of a name — remove the duplicate. |
| SMTP is refused with an authentication error. | The normal account password was used. | Create an app-specific password in your email account, then use that. |
| Receipts arrive in spam. | The sending domain is not verified, or the From address is at a domain the provider does not own. | Verify the domain, and set the From address to one at your own domain. |