Параметры конфигурации подключения к SMTP-серверу (sHost, nPort, sUser, sPass, sFrom) сделаны необязательными
This commit is contained in:
parent
021e39e3ac
commit
23436286d5
@ -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(
|
||||||
|
@ -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)`,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user