first commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user