[Implenta] métodos para envío de mensajes de correo electrónico
This commit is contained in:
parent
fc65a6b0e0
commit
9ff946c4a9
15
README.md
15
README.md
|
@ -19,6 +19,21 @@ Estructura del archivo de configuración:
|
|||
}
|
||||
```
|
||||
|
||||
## Archivo de configuración del cliente de correo electrónico
|
||||
|
||||
Por defecto, `Nabu` escanea el archivo `email-config.json` dentro de la carpeta raíz del proyecto.
|
||||
|
||||
Estructura del archivo de configuración:
|
||||
|
||||
```json
|
||||
{
|
||||
"smtp": "smtp.google.com",
|
||||
"port": 587,
|
||||
"address": "foo@gmail.com",
|
||||
"password": "xxxxx"
|
||||
}
|
||||
```
|
||||
|
||||
## Licencia
|
||||
|
||||
```text
|
||||
|
|
|
@ -43,7 +43,7 @@ class usersController {
|
|||
|
||||
$users = $usersModel -> find($data['username'], $data['email']);
|
||||
|
||||
$msg = 'Existe una cuenta registrada con el mismo apodo o dirección de correo electrónico, por favor intételo de nuevo';
|
||||
$msg = 'Existe una cuenta registrada con el mismo apodo o dirección de correo electrónico, por favor inténtelo de nuevo';
|
||||
|
||||
// Valida si la cuenta es única y elimina cuentas expiradas.
|
||||
foreach ($users as $user) {
|
||||
|
@ -72,6 +72,10 @@ class usersController {
|
|||
// Hash de verificación de e-mail.
|
||||
$hash = hash_hmac(self::hash, $data['email'], $key);
|
||||
|
||||
require_once 'libs/emails.php';
|
||||
|
||||
$emails = new emails();
|
||||
|
||||
// Cifra la contraseña.
|
||||
$data['password'] = password_hash($data['password'], PASSWORD_DEFAULT, self::cost);
|
||||
|
||||
|
|
|
@ -2,6 +2,58 @@
|
|||
|
||||
defined('NABU') || exit();
|
||||
|
||||
class emails {
|
||||
require_once 'libs/php-smtp-2.0.4/Email.php';
|
||||
|
||||
use Snipworks\Smtp\Email;
|
||||
|
||||
// Envía mesajes de e-mail en formato HTML.
|
||||
class emails {
|
||||
private $mail;
|
||||
|
||||
private function errors(string $error) {
|
||||
messages::errors($error, 400);
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
if (!file_exists(NABU_DIRECTORY['email'])) {
|
||||
$this -> errors('Create a e-mail config file');
|
||||
}
|
||||
|
||||
// Carga el archivo de configuración del cliente de e-mail.
|
||||
$config = file_get_contents(NABU_DIRECTORY['email']);
|
||||
|
||||
if ($config === false) {
|
||||
$this -> errors('The e-mail config file is invalid');
|
||||
}
|
||||
|
||||
$config = json_decode($config, true);
|
||||
|
||||
exit(var_dump($config));
|
||||
|
||||
$keys = array('smtp', 'port', 'address', 'password');
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if (empty($config[$key])) {
|
||||
$this -> errors('Set "' . $key . '" in e-mail config file');
|
||||
}
|
||||
}
|
||||
|
||||
// Configura el cliente del e-mail.
|
||||
$this -> mail = new Email($config['smtp'], $config['port']);
|
||||
$this -> mail -> setProtocol(Email::TLS);
|
||||
$this -> mail -> setLogin($config['address'], $config['password']);
|
||||
$this -> mail -> setFrom($config['address'], NABU_DEFAULT['website-name']);
|
||||
}
|
||||
|
||||
// Define el destinatario del mensaje.
|
||||
public function prepare(string $destinatary, string $name) {
|
||||
$this -> mail -> addTo($destinatary, $name);
|
||||
}
|
||||
|
||||
// Envía un mensaje de e-mail HTML.
|
||||
public function send(string $subject, string $body) {
|
||||
$this -> mail -> setSubject($subject);
|
||||
$this -> mail -> setHtmlMessage($body);
|
||||
return $this -> mail -> send();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue