File: /var/www/matriculas_api_dev/app/Services/MailService.php
<?php
namespace App\Services;
use Exception;
use Illuminate\Support\Facades\Log;
class MailService
{
public function __construct() {}
public function registerUser($data)
{
try {
BrevoMailer::send(
$data->email,
'Confirmación de Cuenta - ' . env('COMPANY_NAME'),
'templates_email.email_register_user',
[
'data' =>
[
'name' => $data->name,
'username' => $data->rut,
'password' => $data->password,
'token' => $data->activation_token,
'type_account' => $data->profile
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function recoveryPassword($data)
{
try {
return BrevoMailer::send(
$data->email,
'Restablecimiento de Contraseña - ' . env('COMPANY_NAME'),
'templates_email.email_recovery_password',
[
'data' =>
[
'name' => $data->name,
'code' => $data->code,
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function confirmPassword($data)
{
try {
$urlRecovery = env('PAGE_RECOVERY_PASSWORD');
$brevo = BrevoMailer::send(
$data->email,
'Cambio de Contraseña - ' . env('COMPANY_NAME'),
'templates_email.email_confirm_change_password',
[
'data' =>
[
'name' => $data->name,
'urlRecovery' => $urlRecovery,
]
],
);
Log::info($brevo);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function activeAccount($data)
{
try {
return BrevoMailer::send(
$data->email,
'Activación de Cuenta - ' . env('COMPANY_NAME'),
'templates_email.email_activate_account',
[
'data' =>
[
'name' => $data->name,
'code' => $data->code,
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function confirmActiveAccount($data)
{
try {
return BrevoMailer::send(
$data->email,
'Cuenta Activada - ' . env('COMPANY_NAME'),
'templates_email.email_confirm_activate_account',
[
'data' =>
[
'name' => $data->name,
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function pendingPaymentReminder($data)
{
try {
return BrevoMailer::send(
$data->email,
'Recordatorio: Pago Pendiente - ' . env('COMPANY_NAME'),
'templates_email.email_pending_payment_reminder',
[
'data' =>
[
'name' => $data->name,
'contract_code' => $data->contract_code ?? null,
'students' => $data->students ?? null,
'concepts' => $data->concepts ?? null,
'amount' => $data->amount ?? null,
'portal_url' => $data->portal_url ?? null,
'created_at' => $data->created_at ?? null,
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
public function paymentRegistered($data)
{
try {
return BrevoMailer::send(
$data->email,
'Pago Registrado - ' . env('COMPANY_NAME'),
'templates_email.email_payment_registered',
[
'data' =>
[
'name' => $data->name,
'contract_code' => $data->contract_code ?? null,
'students' => $data->students ?? null,
'concepts' => $data->concepts ?? null,
'amount' => $data->amount ?? null,
'payment_method' => $data->payment_method ?? null,
'paid_at' => $data->paid_at ?? null,
'reference_number' => $data->reference_number ?? null,
'pending_message' => $data->pending_message ?? null,
'portal_url' => $data->portal_url ?? null,
]
],
);
} catch (Exception $e) {
return $e->getMessage();
}
}
}