Guias
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.