Files
Escapepage/templates/tech/reset_password/email.html.twig
T
FrankandClaude Sonnet 5 238705495e Add shared HTML layout for transactional emails
confirmation_email.html.twig and reset_password/email.html.twig were
plain unstyled HTML with no shared structure. Extract a table-based
layout (templates/emails/layout.html.twig) with header/logo, content
block, and footer, so future transactional emails can extend it
instead of starting from scratch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 14:51:34 +02:00

32 lines
1.4 KiB
Twig

{% extends 'emails/layout.html.twig' %}
{% block title %}Reset your password{% endblock %}
{% block content %}
<h1 style="margin:0 0 16px; font-size:20px; color:#222222;">Hi!</h1>
<p style="margin:0 0 24px;">
We received a request to reset your password. Click the button below to choose a new one.
This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.
</p>
<table role="presentation" cellpadding="0" cellspacing="0" style="margin:0 0 24px;">
<tr>
<td style="border-radius:4px; background-color:#3a7ca5;">
<a href="{{ url('app_reset_password', {token: resetToken.token}) }}" style="display:inline-block; padding:12px 24px; color:#ffffff; text-decoration:none; font-weight:bold;">
Reset my password
</a>
</td>
</tr>
</table>
<p style="margin:0 0 24px;">
If the button doesn't work, copy and paste this link into your browser:<br>
<a href="{{ url('app_reset_password', {token: resetToken.token}) }}" style="color:#3a7ca5; word-break:break-all;">{{ url('app_reset_password', {token: resetToken.token}) }}</a>
</p>
<p style="margin:0 0 8px;">If you didn't request a password reset, you can safely ignore this email.</p>
<p style="margin:24px 0 0;">Cheers!</p>
{% endblock %}