HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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();
        }
    }
}