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;
|
|
}
|
|
}
|
|
}
|