Implementado servicio de envio de emails y funcion de envio a correo unico en etorno de desarrollo

This commit is contained in:
unknown
2025-03-27 12:08:09 +01:00
parent 4a6b974e94
commit f37805d310
4 changed files with 31 additions and 85 deletions

View File

@ -60,4 +60,14 @@ class Services extends BaseService
{
return new ChatService();
}
public static function emailService($getShared = true)
{
if ($getShared) {
return static::getSharedInstance('emailService');
}
return new \App\Services\EmailService();
}
}

View File

@ -60,43 +60,10 @@ class Ticketcontroller extends \App\Controllers\BaseResourceController
private function sendMail($subject, $body, $recipient)
{
$settings_model = new SettingsModel();
$config = $settings_model->first()->toArray();
$gateway = $config['email_gateway'];
$body = html_entity_decode($body);
// Funcion wrapper para el servicio de envio de correos dentro de la fucionalidad previa
$emailService = service('emailService');
if ($gateway == 'smtp') {
try {
//https://codeigniter.com/user_guide/libraries/email.html
$email = \Config\Services::email();
$config['protocol'] = $config['email_gateway'];
$config['SMTPHost'] = $config['email_smtp'];
$config['SMTPUser'] = $config['email_address'];
$config['SMTPPass'] = $config['email_pass'];
$config['SMTPPort'] = intval($config['email_port']);
$config['SMTPCrypto'] = $config['email_cert'] == 'none' ? '' : $config['email_cert'];
$config['SMTPTimeout'] = 15;
$config['mailType'] = 'html';
$config['wordWrap'] = true;
$email->initialize($config);
$email->setFrom($config['email_address'], $config['email_name']);
$email->setTo($recipient);
$email->setSubject($subject);
$email->setMessage($body);
if (!$email->send()) {
return false;
} else {
return true;
}
} catch (\Exception $ex) {
return false;
}
}
return false;
return $emailService->send($subject, $body, $recipient);
}
public function add()

View File

@ -29,52 +29,16 @@ class Test extends BaseController
}
public function index()
private function index()
{
$this->sendMail('prueba', 'Esto es una prueba', ['jaimejimenezortega@gmail.com','jaime0jimenez0ortega@gmail.com']);
}
private function sendMail($subject, $body, $recipient)
{
$settings_model = new SettingsModel();
$config = $settings_model->first()->toArray();
$gateway = $config['email_gateway'];
$body = html_entity_decode($body);
if ($gateway == 'smtp') {
try {
//https://codeigniter.com/user_guide/libraries/email.html
$email = \Config\Services::email();
$config['protocol'] = $config['email_gateway'];
$config['SMTPHost'] = $config['email_smtp'];
$config['SMTPUser'] = $config['email_address'];
$config['SMTPPass'] = $config['email_pass'];
$config['SMTPPort'] = intval($config['email_port']);
$config['SMTPCrypto'] = $config['email_cert'] == 'none' ? '' : $config['email_cert'];
$config['SMTPTimeout'] = 15;
$config['mailType'] = 'html';
$config['wordWrap'] = true;
$email->initialize($config);
$email->setFrom($config['email_address'], $config['email_name']);
$email->setTo($recipient);
$email->setSubject($subject);
$email->setMessage($body);
if (!$email->send()) {
return false;
} else {
return true;
}
} catch (\Exception $ex) {
return false;
}
}
return false;
$this->emailService = service('emailService');
$a= $this->emailService->send('prueba', 'Esto es una prueba', ['imnavajas@coit.es','imnavajas@gmail.com']);
echo var_dump($a);
}
private function clonar_tarifa_encuadernacion($teOrigen, $teDestino){
$tet_model = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel');

View File

@ -40,7 +40,7 @@ class ChatService extends BaseService
protected array $modelClassMap;
public function __construct()
{
$this->emailService = service('email');
$this->emailService = service('emailService'); // Usar el servicio de email de Safekat y no el de CI4
$this->userModel = model(UserModel::class);
$this->chatModel = model(ChatModel::class);
$this->chatMessageModel = model(ChatMessageModel::class);
@ -186,10 +186,15 @@ class ChatService extends BaseService
{
$users = auth()->getProvider();
$toEmail = $users->find($user->id)->getEmail();
$this->emailService->setTo($toEmail);
$subject = '[Safekat]' . lang('Chat.mail.mail_subject') . '-' . $chatMessageEntity->chat()->title;
$this->emailService->setSubject($subject);
$this->emailService->setMessage(view('themes/vuexy/mail/messageNotification', ["header" => lang('Chat.mail.mail_subject'), "data" => $chatMessageEntity->withUser()]));
return $this->emailService->send();
$subject = '[Safekat]' . lang('Chat.mail.mail_subject') . ' - ' . $chatMessageEntity->chat()->title;
$message = view('themes/vuexy/mail/messageNotification', [
"header" => lang('Chat.mail.mail_subject'),
"data" => $chatMessageEntity->withUser(),
]);
return $this->emailService->send($subject, $message, $toEmail);
}
}