O sistema de e-mail da MuCRM usa classes de mail com template, assunto e dados. O envio é feito via SMTP configurado em config/system.php → mail.
Como funciona
- Você cria uma classe que estende
MUCRM\engine\mail\mail - Define o assunto, a view do template e os dados
- Chama
mailer::send($destino, $mail)
Classe de mail
Exemplo real: recuperação de senha em app/shared/mailers/
<?php
namespace MUCRM\shared\mailers;
use MUCRM\engine\mail\mail;
class recovery_mail extends mail
{
public function __construct(
private string $name,
private string $email,
private string $new_password
) {}
public function subject(): string
{
return 'Recuperar Senha - ' . config('app.server.name');
}
public function view(): string
{
return 'mails.recovery';
}
public function data(): array
{
return [
'name' => $this->name,
'email' => $this->email,
'new_password' => $this->new_password,
];
}
}Template do e-mail
Views de e-mail ficam em themes/mails/:
<!-- themes/mails/recovery.mucrm.php -->
<h1>Olá, <?= e($name) ?></h1>
<p>Sua nova senha: <?= e($new_password) ?></p>Enviar
use MUCRM\engine\mail\mailer;
use MUCRM\shared\mailers\recovery_mail;
mailer::send('cliente@email.com', new recovery_mail($name, $email, $pwd));Para não travar a página, despache via job:Fila de Jobs.
Configuração SMTP
Em config/system.php:
'mail' => [
'host' => 'smtp.exemplo.com',
'port' => 587,
'username' => '...',
'password' => '...',
'from' => ['address' => 'noreply@site.com', 'name' => 'Meu Servidor'],
],