diff --git a/app/modules/web/Controllers/ConfigEncryptionController.php b/app/modules/web/Controllers/ConfigEncryptionController.php
index 2075bac0..8130945e 100644
--- a/app/modules/web/Controllers/ConfigEncryptionController.php
+++ b/app/modules/web/Controllers/ConfigEncryptionController.php
@@ -37,11 +37,11 @@ use SP\Core\TaskFactory;
use SP\Http\JsonResponse;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Traits\JsonTrait;
-use SP\Providers\Mail\MailProvider;
use SP\Services\Config\ConfigService;
use SP\Services\Crypt\MasterPassService;
use SP\Services\Crypt\TemporaryMasterPassService;
use SP\Services\Crypt\UpdateMasterPassRequest;
+use SP\Services\MailService;
use SP\Services\User\UserService;
use SP\Util\Util;
@@ -206,7 +206,7 @@ class ConfigEncryptionController extends SimpleControllerBase
return $value->email;
}, $this->dic->get(UserService::class)->getUserEmailForGroup($groupId));
- $this->dic->get(MailProvider::class)->sendBatch($mailMessage->getTitle(), $emails, $mailMessage);
+ $this->dic->get(MailService::class)->sendBatch($mailMessage->getTitle(), $emails, $mailMessage);
$this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Clave Temporal Generada'), [__u('Email enviado')]);
} catch (\Exception $e) {
diff --git a/app/modules/web/Controllers/ConfigMailController.php b/app/modules/web/Controllers/ConfigMailController.php
index 78923211..3b4485fd 100644
--- a/app/modules/web/Controllers/ConfigMailController.php
+++ b/app/modules/web/Controllers/ConfigMailController.php
@@ -24,6 +24,7 @@
namespace SP\Modules\Web\Controllers;
+use SP\Config\ConfigUtil;
use SP\Core\Acl\ActionsInterface;
use SP\Core\Acl\UnauthorizedPageException;
use SP\Core\Events\Event;
@@ -32,7 +33,7 @@ use SP\Http\JsonResponse;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Traits\ConfigTrait;
use SP\Providers\Mail\MailParams;
-use SP\Providers\Mail\MailProvider;
+use SP\Services\MailService;
/**
* Class ConfigMailController
@@ -61,9 +62,10 @@ class ConfigMailController extends SimpleControllerBase
$mailFrom = Request::analyzeEmail('mail_from');
$mailRequests = Request::analyzeBool('mail_requestsenabled', false);
$mailAuth = Request::analyzeBool('mail_authenabled', false);
+ $mailRecipients = ConfigUtil::mailAddressesAdapter(Request::analyzeString('mail_recipients'));
// Valores para la configuración del Correo
- if ($mailEnabled && (!$mailServer || !$mailFrom)) {
+ if ($mailEnabled && (!$mailServer || !$mailFrom || count($mailRecipients) === 0)) {
$this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('Faltan parámetros de Correo'));
}
@@ -74,6 +76,7 @@ class ConfigMailController extends SimpleControllerBase
$configData->setMailPort($mailPort);
$configData->setMailSecurity($mailSecurity);
$configData->setMailFrom($mailFrom);
+ $configData->setMailRecipients($mailRecipients);
if ($mailAuth) {
$configData->setMailAuthenabled($mailAuth);
@@ -97,29 +100,50 @@ class ConfigMailController extends SimpleControllerBase
});
}
+ /**
+ * checkAction
+ */
public function checkAction()
{
$mailParams = new MailParams();
-
- // Mail
$mailParams->server = Request::analyzeString('mail_server');
$mailParams->port = Request::analyzeInt('mail_port', 25);
$mailParams->security = Request::analyzeString('mail_security');
$mailParams->from = Request::analyzeEmail('mail_from');
$mailParams->mailAuthenabled = Request::analyzeBool('mail_authenabled', false);
+ $mailRecipients = ConfigUtil::mailAddressesAdapter(Request::analyzeString('mail_recipients'));
// Valores para la configuración del Correo
- if (!$mailParams->server || !$mailParams->from) {
+ if (!$mailParams->server || empty($mailParams->from) || empty($mailRecipients)) {
$this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('Faltan parámetros de Correo'));
}
-
if ($mailParams->mailAuthenabled) {
$mailParams->user = Request::analyzeString('mail_user');
$mailParams->pass = Request::analyzeEncrypted('mail_pass');
}
- $mailProvider = $this->dic->get(MailProvider::class);
+ try {
+ $this->dic->get(MailService::class)->check($mailParams, $mailRecipients[0]);
+
+ $this->eventDispatcher->notifyEvent('send.mail.check',
+ new Event($this, EventMessage::factory()
+ ->addDescription(__u('Correo enviado'))
+ ->addDetail(__u('Destinatario'), $mailRecipients[0]))
+ );
+
+ $this->returnJsonResponse(
+ JsonResponse::JSON_SUCCESS,
+ __u('Correo enviado'),
+ [__u('Compruebe su buzón de correo')]
+ );
+ } catch (\Exception $e) {
+ processException($e);
+
+ $this->eventDispatcher->notifyEvent('exception', new Event($e));
+
+ $this->returnJsonResponseException($e);
+ }
}
protected function initialize()
diff --git a/app/modules/web/Controllers/UserController.php b/app/modules/web/Controllers/UserController.php
index 252f4669..9c7b9d7f 100644
--- a/app/modules/web/Controllers/UserController.php
+++ b/app/modules/web/Controllers/UserController.php
@@ -38,7 +38,7 @@ use SP\Modules\Web\Controllers\Traits\JsonTrait;
use SP\Modules\Web\Forms\UserForm;
use SP\Mvc\Controller\CrudControllerInterface;
use SP\Mvc\View\Components\SelectItemAdapter;
-use SP\Providers\Mail\MailProvider;
+use SP\Services\MailService;
use SP\Services\User\UserService;
use SP\Services\UserGroup\UserGroupService;
use SP\Services\UserPassRecover\UserPassRecoverService;
@@ -312,7 +312,7 @@ class UserController extends ControllerBase implements CrudControllerInterface
{
if ($userData->isChangePass()) {
$hash = $this->dic->get(UserPassRecoverService::class)->requestForUserId($userData->getId());
- $this->dic->get(MailProvider::class)->send(__('Cambio de Clave'), $userData->getEmail(), UserPassRecoverService::getMailMessage($hash));
+ $this->dic->get(MailService::class)->send(__('Cambio de Clave'), $userData->getEmail(), UserPassRecoverService::getMailMessage($hash));
// $this->returnJsonResponse(
// JsonResponse::JSON_WARNING,
diff --git a/app/modules/web/Controllers/UserPassResetController.php b/app/modules/web/Controllers/UserPassResetController.php
index 675de258..30dbe3e8 100644
--- a/app/modules/web/Controllers/UserPassResetController.php
+++ b/app/modules/web/Controllers/UserPassResetController.php
@@ -32,8 +32,8 @@ use SP\Http\JsonResponse;
use SP\Http\Request;
use SP\Modules\Web\Controllers\Helpers\LayoutHelper;
use SP\Modules\Web\Controllers\Traits\JsonTrait;
-use SP\Providers\Mail\MailProvider;
use SP\Repositories\Track\TrackRequest;
+use SP\Services\MailService;
use SP\Services\Track\TrackService;
use SP\Services\User\UserService;
use SP\Services\UserPassRecover\UserPassRecoverService;
@@ -103,7 +103,7 @@ class UserPassResetController extends ControllerBase
->addDetail(__u('Solicitado para'), sprintf('%s (%s)', $login, $email)))
);
- $this->dic->get(MailProvider::class)->send(__('Cambio de Clave'), $email, UserPassRecoverService::getMailMessage($hash));
+ $this->dic->get(MailService::class)->send(__('Cambio de Clave'), $email, UserPassRecoverService::getMailMessage($hash));
$this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Solicitud enviada'), [__u('En breve recibirá un correo para completar la solicitud.')]);
} catch (\Exception $e) {
diff --git a/app/modules/web/themes/material-blue/views/config/mail.inc b/app/modules/web/themes/material-blue/views/config/mail.inc
index 77b6515d..fd329fe4 100644
--- a/app/modules/web/themes/material-blue/views/config/mail.inc
+++ b/app/modules/web/themes/material-blue/views/config/mail.inc
@@ -1,4 +1,9 @@
-
+
@@ -20,6 +25,25 @@
+
+ |
+ getIconHelp()->getIcon(); ?>
+
+ |
+
+
+ |
+
|
@@ -115,21 +139,13 @@
|
|
- getIconHelp()->getIcon(); ?>
-
+
|
-
+
+
+
|
@@ -140,6 +156,16 @@
+ -
+
+
-