voltar · D110 · every e-mail on the app's warm background

Your words (IV-20261018-09): "every e-mail the app sends: update the background fill colour to the same as the app with the warmer tone of the background, do a mockup of all the emil temapltes."

Route: Identidade (12 → you → build). Nothing is built until you approve. The 9 e-mails below, in 4 languages, are today's e-mails exactly as the app renders them (php artisan voltar:emails-preview, 2026-10-15), with one change: the light background fill around the white card is now the app's background, #F2F0ED, the design-system token --voltar-bg, in place of #EDF1F5. Images load from https://voltar-stg.borgesleitao.com/email/. The frames follow your device's light or dark setting, as a mail client does.

Today's fill next to the new one

Two e-mails side by side, today on the left, the new fill on the right. These four frames always show the light theme, even on a dark-mode device, so you can compare the two fills; every other frame on this page follows your device.

Invite

Today · fill #EDF1F5 · phone, 375 px
New · fill #F2F0ED (--voltar-bg) · phone, 375 px

E-mail digest, weekly

Today · fill #EDF1F5 · phone, 375 px
New · fill #F2F0ED (--voltar-bg) · phone, 375 px

What changes, and what does not

Contrast ratios by the WCAG 2.1 formula on the hex values [cond: hex values of voltar_d16_layout.blade.php and tokens.css on main 483bb99e8 · n/a width · WCAG 2.1 formula computed by the 12 · 2026-10-18 20:40]. Fills changed: 162, that is 18 frames and 36 language variants, 3 fills each [cond: this page, D110 · n/a width · static · string count by the 12's generator script · 2026-10-18 20:40].

Subject vs body (PT-PT)

E-mailSubjectBody heading (first line of the text part)Preview text
1. InviteFoste convidado para o voltarFoste convidado para o voltarCria a tua conta no voltar. O convite é válido durante 72 horas.
2. Password recoveryRepor a tua palavra-passeRepor a tua palavra-passeCarrega no botão para escolheres uma nova palavra-passe.
3. E-mail digest, weeklyEsta semana na tua rede voltar, 12 locais novos, 7 visitasOlá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.
4. E-mail digest, dailyHoje na tua rede voltar, 12 locais novos, 7 visitasOlá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.
5. E-mail digest, immediateAgora na tua rede voltar, 1 local novo, 0 visitasRui Costa adicionou Taberna do Largo.Rui Costa adicionou Taberna do Largo.
6. Security notice, new sign-inNova entrada na tua conta voltarNova entrada na tua contaAlguém entrou na tua conta voltar a partir de um dispositivo ou de uma rede que ainda não conhecíamos.
7. Security notice, password changedA palavra-passe da tua conta voltar foi alteradaA tua palavra-passe foi alteradaA palavra-passe da tua conta voltar foi alterada na app.
8. Security notice, password resetA palavra-passe da tua conta voltar foi repostaA tua palavra-passe foi repostaA palavra-passe da tua conta voltar foi reposta através do link de recuperação enviado para este email.
9. Security notice, e-mail changed (to the old address)O email da tua conta voltar foi alteradoO email da tua conta foi alteradoA tua conta voltar passou a usar outro endereço de email para entrar. Este endereço deixou de dar acesso à conta.

1. Invite

Subject
Foste convidado para o voltar
Preview text
Cria a tua conta no voltar. O convite é válido durante 72 horas.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
When the Administrator approves an invite (his own, or a Colaborador's proposal) that carries an e-mail address: InviteService::approve() queues it. Not sent on rejection, nor for a phone-only contact (SMS deferred). Language: the proposer's account language (the Administrator's when he issues it). Link valid 72 h, single use.
Source
App\Mail\InviteMail, view emails.voltar_convite; RF-11.2, RF-11.19, RF-11.57 point 7.6
Sample data
token: fake placeholder
Phone, 375 px
Desktop, 720 px
Plain-text part
Foste convidado para o voltar

O voltar guarda os sítios da tua vida: a tasca de sempre, o museu que te marcou, o jardim de domingo.

- Guarda os sítios a que queres voltar, e os que queres experimentar.
- Regista cada visita com o teu veredicto: voltar ou não voltar.
- Vê o que os teus amigos recomendam, perto de ti.

Criar a minha conta:
https://voltar-stg.borgesleitao.com/registar/EXEMPLO-ligacao-de-amostra-invalida

O convite é válido durante 72 horas.

--
Se não esperavas este convite, podes ignorar este email. Não é criada nenhuma conta sem ti.
voltar · os sítios a que vale a pena voltar.

2. Password recovery

Subject
Repor a tua palavra-passe
Preview text
Carrega no botão para escolheres uma nova palavra-passe.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
When someone asks for a reset on the «Recuperar palavra-passe» screen and the account exists (PasswordRecoveryController queues it; no account means no e-mail, same answer on screen). Also by the operator command voltar:family-load --send-reset, once per family account. Language: the account language. Link valid 60 min, single use.
Source
App\Mail\PasswordRecoveryMail, view emails.voltar_recuperar_password; RF-11.8, RF-11.50, RF-11.52
Sample data
token: fake placeholder
Phone, 375 px
Desktop, 720 px
Plain-text part
Repor a tua palavra-passe

Recebemos um pedido para repor a palavra-passe da tua conta voltar. Carrega no botão para escolheres uma nova.

Repor palavra-passe:
https://voltar-stg.borgesleitao.com/repor-password/EXEMPLO-ligacao-de-amostra-invalida?idioma=PT-PT

Este link expira em 1 hora.

Não foste tu? Ignora este email. A tua palavra-passe não muda e a conta continua segura.

--
Enviámos este email porque alguém pediu para repor a palavra-passe desta conta.
voltar · os sítios a que vale a pena voltar.

3. E-mail digest, weekly

Subject
Esta semana na tua rede voltar, 12 locais novos, 7 visitas
Preview text
Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
Weekly: on the user's chosen weekday and hour. Built by SendEmailDigestsJob (scheduler, hourly) when the user's cadence is due in their timezone; sent by SendPendingEmailDigestsJob (scheduler, every minute, rate-capped) through EmailDigestSender. Never sent when the cadence is «desligado» or the account is deleted. Language: the recipient's account language.
Source
App\Mail\EmailDigestMail (cadence semanal), view emails.voltar_digest; RF-08.9, P-568
Sample data
Ana Ribeiro, 12 new places, 7 visits
Phone, 375 px
Desktop, 720 px
Plain-text part
Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.

O que a tua rede provou esta semana.

12 locais novos
7 visitas

Os pormenores estão na app, em Notificações.

--
A frequência muda-se na app, em Conta › Notificações.
Desligar o resumo por email:
https://voltar-stg.borgesleitao.com/desligar-digest/EXEMPLO-ligacao-de-amostra-invalida
Enviado por Francisco Borges Leitão. Contacto: admin@voltar.borgesleitao.com
voltar · os sítios a que vale a pena voltar.

4. E-mail digest, daily

Subject
Hoje na tua rede voltar, 12 locais novos, 7 visitas
Preview text
Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
Daily: at the user's chosen hour. Built by SendEmailDigestsJob (scheduler, hourly) when the user's cadence is due in their timezone; sent by SendPendingEmailDigestsJob (scheduler, every minute, rate-capped) through EmailDigestSender. Never sent when the cadence is «desligado» or the account is deleted. Language: the recipient's account language.
Source
App\Mail\EmailDigestMail (cadence diario), view emails.voltar_digest; RF-08.9, P-568
Sample data
Ana Ribeiro, 12 new places, 7 visits
Phone, 375 px
Desktop, 720 px
Plain-text part
Olá, Ana. A tua rede descobriu 12 locais e fez 7 visitas.

O que a tua rede provou hoje.

12 locais novos
7 visitas

Os pormenores estão na app, em Notificações.

--
A frequência muda-se na app, em Conta › Notificações.
Desligar o resumo por email:
https://voltar-stg.borgesleitao.com/desligar-digest/EXEMPLO-ligacao-de-amostra-invalida
Enviado por Francisco Borges Leitão. Contacto: admin@voltar.borgesleitao.com
voltar · os sítios a que vale a pena voltar.

5. E-mail digest, immediate

Subject
Agora na tua rede voltar, 1 local novo, 0 visitas
Preview text
Rui Costa adicionou Taberna do Largo.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
Immediate: one e-mail per eligible event (RF-08.9 point 1), built on the next hourly scheduler tick after the event, so up to one hour late. Built by SendEmailDigestsJob (scheduler, hourly) when the user's cadence is due in their timezone; sent by SendPendingEmailDigestsJob (scheduler, every minute, rate-capped) through EmailDigestSender. Never sent when the cadence is «desligado» or the account is deleted. Language: the recipient's account language. The body leads with the event, in the in-app centre's words; no count tiles.
Source
App\Mail\EmailDigestMail (cadence imediato), view emails.voltar_digest; RF-08.9 point 1, P-568
Sample data
Ana Ribeiro; event: Rui Costa added Taberna do Largo
Phone, 375 px
Desktop, 720 px
Plain-text part
Rui Costa adicionou Taberna do Largo.

Os pormenores estão na app, em Notificações.

--
A frequência muda-se na app, em Conta › Notificações.
Desligar o resumo por email:
https://voltar-stg.borgesleitao.com/desligar-digest/EXEMPLO-ligacao-de-amostra-invalida
Enviado por Francisco Borges Leitão. Contacto: admin@voltar.borgesleitao.com
voltar · os sítios a que vale a pena voltar.

6. Security notice, new sign-in

Subject
Nova entrada na tua conta voltar
Preview text
Alguém entrou na tua conta voltar a partir de um dispositivo ou de uma rede que ainda não conhecíamos.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
After a password or passkey sign-in from a device (voltar_device cookie) or an IP not seen before for the account. A known device on a known IP sends nothing; the silent «keep me signed in» re-auth never sends. Queued by voltar_SecurityNoticeService; a failure to queue never breaks the act. No link. Language: the account language.
Source
App\Mail\voltar_SecurityNoticeMail (kind novo_acesso), view emails.voltar_seguranca; RF-11.15
Sample data
Ana Ribeiro; device: Chrome on Windows; time: 15 Oct 2026, 10:00 (rendered in the account language and timezone)
Phone, 375 px
Desktop, 720 px
Plain-text part
Nova entrada na tua conta

Olá, Ana.

Alguém entrou na tua conta voltar a partir de um dispositivo ou de uma rede que ainda não conhecíamos.

Dispositivo: Chrome · Windows
Quando: 15/10/2026 10:00

Se foste tu, não tens de fazer nada.

Não foste tu? Muda já a palavra-passe na app e termina a sessão em todos os dispositivos. Se já não conseguires entrar, usa «Esqueci-me da palavra-passe» no ecrã de entrada. Contacto: admin@voltar.borgesleitao.com

--
Enviámos este aviso de segurança porque houve uma entrada nova na tua conta.
voltar · os sítios a que vale a pena voltar.

7. Security notice, password changed

Subject
A palavra-passe da tua conta voltar foi alterada
Preview text
A palavra-passe da tua conta voltar foi alterada na app.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
After the password is changed in the app (PUT /api/account/password, PasswordWasChanged event). Queued by voltar_SecurityNoticeService; a failure to queue never breaks the act. No link. Language: the account language.
Source
App\Mail\voltar_SecurityNoticeMail (kind password_alterada), view emails.voltar_seguranca; RF-11.9, RF-11.15
Sample data
Ana Ribeiro; device: Chrome on Windows; time: 15 Oct 2026, 10:00 (rendered in the account language and timezone)
Phone, 375 px
Desktop, 720 px
Plain-text part
A tua palavra-passe foi alterada

Olá, Ana.

A palavra-passe da tua conta voltar foi alterada na app.

Dispositivo: Chrome · Windows
Quando: 15/10/2026 10:00

Se foste tu, não tens de fazer nada.

Não foste tu? Escolhe já uma palavra-passe nova, em «Esqueci-me da palavra-passe» no ecrã de entrada, e termina a sessão em todos os dispositivos. Contacto: admin@voltar.borgesleitao.com

--
Enviámos este aviso de segurança porque a palavra-passe da tua conta mudou.
voltar · os sítios a que vale a pena voltar.

8. Security notice, password reset

Subject
A palavra-passe da tua conta voltar foi reposta
Preview text
A palavra-passe da tua conta voltar foi reposta através do link de recuperação enviado para este email.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
After a password is set through the recovery link (PasswordWasReset event). Queued by voltar_SecurityNoticeService; a failure to queue never breaks the act. No link. Language: the account language.
Source
App\Mail\voltar_SecurityNoticeMail (kind password_reposta), view emails.voltar_seguranca; RF-11.52, RF-11.15
Sample data
Ana Ribeiro; device: Chrome on Windows; time: 15 Oct 2026, 10:00 (rendered in the account language and timezone)
Phone, 375 px
Desktop, 720 px
Plain-text part
A tua palavra-passe foi reposta

Olá, Ana.

A palavra-passe da tua conta voltar foi reposta através do link de recuperação enviado para este email.

Dispositivo: Chrome · Windows
Quando: 15/10/2026 10:00

Se foste tu, não tens de fazer nada.

Não foste tu? Escolhe já uma palavra-passe nova, em «Esqueci-me da palavra-passe» no ecrã de entrada, e termina a sessão em todos os dispositivos. Contacto: admin@voltar.borgesleitao.com

--
Enviámos este aviso de segurança porque a palavra-passe da tua conta mudou.
voltar · os sítios a que vale a pena voltar.

9. Security notice, e-mail changed (to the old address)

Subject
O email da tua conta voltar foi alterado
Preview text
A tua conta voltar passou a usar outro endereço de email para entrar. Este endereço deixou de dar acesso à conta.
From
voltar <no-reply@voltar.borgesleitao.com>
Language
PT-PT
When it is sent
To the OLD address, after the account e-mail is changed (EmailController). It does not show the new address. Queued by voltar_SecurityNoticeService; a failure to queue never breaks the act. No link. Language: the account language.
Source
App\Mail\voltar_SecurityNoticeMail (kind email_alterado), view emails.voltar_seguranca; RF-11.24 point 4
Sample data
Ana Ribeiro; device: Chrome on Windows; time: 15 Oct 2026, 10:00 (rendered in the account language and timezone)
Phone, 375 px
Desktop, 720 px
Plain-text part
O email da tua conta foi alterado

Olá, Ana.

A tua conta voltar passou a usar outro endereço de email para entrar. Este endereço deixou de dar acesso à conta.

Dispositivo: Chrome · Windows
Quando: 15/10/2026 10:00

Se foste tu, não tens de fazer nada.

Não foste tu? A tua conta pode estar nas mãos de outra pessoa. Fala connosco já, no contacto abaixo. Contacto: admin@voltar.borgesleitao.com

--
Enviámos este aviso para o endereço que estava associado à tua conta voltar.
voltar · os sítios a que vale a pena voltar.

E-mails the requirements call for that have no template

Checked and not e-mail: invite rejection (state only, RF-11.19), MFA reset (operator command, no message), account deletion, deactivation and data export (no message; RF-10 forbids e-mailing the export), phone-only invite (SMS deferred). No framework default mail (reset, verify) and no Mail::raw or Notification::toMail is used.