Guias

E-mail

Configurações de envio e envio de e-mail a partir de templates.

O Nimbly envia e-mails para redefinição de senha, troca de e-mail e alertas, e o seu código envia os próprios pela mesma biblioteca. O envio é configurado no .env.

Configure o envio

Com Resend:

MAIL_SERVICE=resend
MAIL_FROM=no-reply@example.com
MAIL_FROM_NAME="Example"
RESEND_API_KEY=re_…
SYSTEM_ALERT_EMAIL=alerts@example.com

Com um provedor SMTP:

MAIL_SERVICE=smtp
MAIL_FROM=no-reply@example.com
MAIL_FROM_NAME="Example"
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_USER=…
SMTP_PASSWORD=…
SMTP_SECURE=smtps

SMTP_SECURE é smtps para TLS na porta 465, ou starttls para a porta 587. Defina MAIL_FROM_NAME com o nome do site, para que os destinatários reconheçam o remetente.

SYSTEM_ALERT_EMAIL recebe alertas sobre erros fatais e jobs que falharam de vez; sem ele, os alertas vão para ADMIN_EMAIL.

Envie um e-mail

O corpo da mensagem é um template, então usa os mesmos shortcodes e variáveis de uma página:

load_library('email');
load_library('env');
set_variable('lead', $lead);
$sent = email([
    'service' => env('MAIL_SERVICE', 'resend'),
    'from' => env('MAIL_FROM'),
    'from_name' => env('MAIL_FROM_NAME'),
    'recipient' => $lead['email'],
    'subject' => 'Thank you for your message',
    'tpl' => 'email-lead-thanks',
]);

ext/tpl/email-lead-thanks/index.tpl:

<p>Dear [#get lead.name#],</p>
<p>Thank you for getting in touch. We will reply within two working days.</p>

Uma versão em texto simples é gerada a partir do HTML. Em vez de tpl, html passa um corpo que você mesmo gerou; cc e uma lista de destinatários também são aceitos. O email() devolve se o provedor aceitou a mensagem.

Envie a partir de um job

Enviar leva um instante e pode falhar, então envie a partir de um job, não durante uma requisição de página. Um job que lança um erro é tentado de novo, e uma mensagem que não pode ser entregue vai para os jobs falhos no admin, com o erro do provedor.

Ver esta página em Markdown