69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
<?php
|
||
|
||
namespace App\Libraries;
|
||
|
||
use CodeIgniter\Email\Email;
|
||
use Config\Services;
|
||
|
||
class EmailLibrary
|
||
{
|
||
/**
|
||
* Отправить письмо для подтверждения email
|
||
*/
|
||
public function sendVerificationEmail(string $email, string $name, string $token): bool
|
||
{
|
||
$emailConfig = config('Email');
|
||
|
||
// Генерируем URL для подтверждения
|
||
$verificationUrl = base_url('/auth/verify/' . $token);
|
||
|
||
// Рендерим HTML письма через Twig
|
||
$twig = Services::twig();
|
||
$htmlBody = $twig->render('emails/verification', [
|
||
'name' => $name,
|
||
'verification_url' => $verificationUrl,
|
||
'app_name' => $emailConfig->fromName ?? 'Бизнес.Точка',
|
||
]);
|
||
|
||
$emailer = Services::email($emailConfig);
|
||
$emailer->setTo($email);
|
||
$emailer->setFrom($emailConfig->fromEmail, $emailConfig->fromName);
|
||
$emailer->setSubject('Подтверждение регистрации');
|
||
$emailer->setMessage($htmlBody);
|
||
|
||
try {
|
||
return $emailer->send();
|
||
} catch (\Exception $e) {
|
||
log_message('error', 'Ошибка отправки email: ' . $e->getMessage());
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Отправить уведомление об успешной регистрации (после подтверждения)
|
||
*/
|
||
public function sendWelcomeEmail(string $email, string $name): bool
|
||
{
|
||
$emailConfig = config('Email');
|
||
|
||
$twig = Services::twig();
|
||
$htmlBody = $twig->render('emails/welcome', [
|
||
'name' => $name,
|
||
'app_name' => $emailConfig->fromName ?? 'Бизнес.Точка',
|
||
]);
|
||
|
||
$emailer = Services::email($emailConfig);
|
||
$emailer->setTo($email);
|
||
$emailer->setFrom($emailConfig->fromEmail, $emailConfig->fromName);
|
||
$emailer->setSubject('Добро пожаловать!');
|
||
$emailer->setMessage($htmlBody);
|
||
|
||
try {
|
||
return $emailer->send();
|
||
} catch (\Exception $e) {
|
||
log_message('error', 'Ошибка отправки email: ' . $e->getMessage());
|
||
return false;
|
||
}
|
||
}
|
||
}
|