Параметры конфигурации подключения к SMTP-серверу (sHost, nPort, sUser, sPass, sFrom) сделаны необязательными

This commit is contained in:
Mikhail Chechnev 2021-03-14 18:52:36 +03:00
parent 021e39e3ac
commit 23436286d5
2 changed files with 25 additions and 17 deletions

View File

@ -10,7 +10,7 @@
const _ = require("lodash"); //Работа с массивами и коллекциями
const EventEmitter = require("events"); //Обработчик пользовательских событий
const { ServerError } = require("./server_errors"); //Типовая ошибка
const { SERR_OBJECT_BAD_INTERFACE } = require("./constants"); //Общесистемные константы
const { SERR_OBJECT_BAD_INTERFACE, SERR_MAIL_FAILED } = require("./constants"); //Общесистемные константы
const { makeErrorText, validateObject, sendMail } = require("./utils"); //Вспомогательные функции
const prmsNotifierSchema = require("../models/prms_notifier"); //Схемы валидации параметров функций класса
@ -112,17 +112,25 @@ class Notifier extends EventEmitter {
//Работаем только по неотправленным уведомлениям
if (!message.bSent) {
try {
//Отправляем
await sendMail({
mail: this.mail,
sTo: message.sTo,
sSubject: message.sSubject,
sMessage: message.sMessage
});
//Протоколируем отправку
await this.logger.info(`Сообщение с темой "${message.sSubject}" отпрвлено ${message.sTo}`);
//Говорим, что отправлено
message.bSent = true;
//Если всё в порядке с настройками
if (this.mail.sHost && this.mail.nPort && this.mail.sUser && this.mail.sPass && this.mail.sFrom) {
//Отправляем
await sendMail({
mail: this.mail,
sTo: message.sTo,
sSubject: message.sSubject,
sMessage: message.sMessage
});
//Протоколируем отправку
await this.logger.info(`Сообщение с темой "${message.sSubject}" отпрвлено ${message.sTo}`);
//Говорим, что отправлено
message.bSent = true;
} else {
throw new ServerError(
SERR_MAIL_FAILED,
'Не указаны параметры подключения к SMTP-сервереру (проверьте секцию "mail" в файле конфигурации)'
);
}
} catch (e) {
await this.logger.error(
`Ошибка отправки сообщения с темой "${message.sSubject}" для ${message.sTo}: ${makeErrorText(

View File

@ -208,7 +208,7 @@ const mail = new Schema({
//Адреc сервера SMTP
sHost: {
type: String,
required: true,
required: false,
message: {
type: path => `Адреc сервера SMTP (${path}) имеет некорректный тип данных (ожидалось - String)`,
required: path => `Не указан aдреc сервера SMTP (${path})`
@ -217,7 +217,7 @@ const mail = new Schema({
//Порт сервера SMTP
nPort: {
type: Number,
required: true,
required: false,
message: {
type: path => `Порт сервера SMTP (${path}) имеет некорректный тип данных (ожидалось - Number)`,
required: path => `Не указан порт сервера SMTP (${path})`
@ -226,7 +226,7 @@ const mail = new Schema({
//Имя пользователя SMTP-сервера
sUser: {
type: String,
required: true,
required: false,
message: {
type: path => `Имя пользователя SMTP-сервера (${path}) имеет некорректный тип данных (ожидалось - String)`,
required: path => `Не указано имя пользователя SMTP-сервера (${path})`
@ -235,7 +235,7 @@ const mail = new Schema({
//Пароль пользователя SMTP-сервера
sPass: {
type: String,
required: true,
required: false,
message: {
type: path =>
`Пароль пользователя SMTP-сервера (${path}) имеет некорректный тип данных (ожидалось - String)`,
@ -245,7 +245,7 @@ const mail = new Schema({
//Наименование отправителя для исходящих сообщений
sFrom: {
type: String,
required: true,
required: false,
message: {
type: path =>
`Наименование отправителя для исходящих сообщений (${path}) имеет некорректный тип данных (ожидалось - String)`,