Site

E-mail

v4

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

  1. Você cria uma classe que estende MUCRM\engine\mail\mail
  2. Define o assunto, a view do template e os dados
  3. 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'],
],