Mailer
This commit is contained in:
@@ -25,23 +25,25 @@ This repository contains a Symfony 7.3 (PHP >= 8.5.1) application for a collabor
|
||||
- `php bin/console doctrine:migrations:migrate -n`
|
||||
4. App is at http://localhost:8080
|
||||
|
||||
## Email (Mailpit in dev, SendGrid for prod)
|
||||
## Email (Mailpit in dev, Mailgun for prod)
|
||||
- Dev: a `mailer` service (Mailpit) runs in Docker.
|
||||
- SMTP DSN in `.env`: `MAILER_DSN=smtp://mailer:1025`
|
||||
- Mailpit UI: http://localhost:8025 (or mapped port 8025)
|
||||
- Send a test mail: `php bin/console app:mail:test you@example.com`
|
||||
- Staging/Prod: use SendGrid.
|
||||
- Require package (already in composer): `symfony/sendgrid-mailer`.
|
||||
- Staging/Prod: use Mailgun.
|
||||
- Require package (already in composer): `symfony/mailgun-mailer`.
|
||||
- Set environment variables (do NOT commit secrets):
|
||||
- `MAILER_DSN=sendgrid+api://%env(SENDGRID_API_KEY)%`
|
||||
- `SENDGRID_API_KEY=YOUR_REAL_KEY`
|
||||
- `MAILER_DSN=mailgun+api://${MAILGUN_API_KEY}:${MAILGUN_DOMAIN}@default?region=eu`
|
||||
- `MAILGUN_API_KEY=YOUR_REAL_KEY`
|
||||
- `MAILGUN_DOMAIN=YOUR_SENDING_DOMAIN` (e.g. `mg.escapepage.nl`)
|
||||
- Optional: `MAILER_FROM=no-reply@your-domain.tld`
|
||||
- Drop `region=eu` (or use `region=us`) depending on which region your Mailgun domain was created in.
|
||||
- Alternatively via SMTP (no extra package):
|
||||
- `MAILER_DSN="smtp://apikey:%env(SENDGRID_API_KEY)%@smtp.sendgrid.net:587?encryption=tls"`
|
||||
- `MAILER_DSN="mailgun+smtp://USERNAME:PASSWORD@default?region=eu"`
|
||||
|
||||
Troubleshooting:
|
||||
- If emails don’t appear in dev, open Mailpit at http://localhost:8025 and verify messages.
|
||||
- In prod, check logs for HTTP 2xx responses from SendGrid and verify sender domain is verified in SendGrid.
|
||||
- In prod, check logs for HTTP 2xx responses from Mailgun and verify sender domain is verified (SPF/DKIM) in Mailgun.
|
||||
|
||||
## Frontend assets with Webpack Encore
|
||||
We use Webpack Encore to build and minify JS/CSS from the `assets/` directory into `public/build/`.
|
||||
|
||||
Reference in New Issue
Block a user