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

View File

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