Отправка сообщений в режиме базы данных

Поддержка базы данных добавлена в версии nhsms v3.0.0.

  • База данных позволяет управлять очередью исходящих смс и задавать время отправки индивидуально для каждого смс.
  • Также в режиме базы данных программа обновляет статус доставки отправленных сообщений в базу данных.
  • Режим базы данных и параметры подключения настраиваются в редакторе конфигурации.

Отправка сообщений через файлы

В режим базы данных nhsms отправляет смс из файлов в два шага:

  • импортирует сообщения из файлов в базу данных
  • отправляет сообщения из базы данных в соответствии с разрешённым временем отправки и приоритетом сообщений

Для указания времени отправки и приоритета в версии v3.0.0 добавлены два параметра:

Пример отправки сообщения через файлы:

[1]
Phone=79001234567
SendingPriority=P
SendingTime=10:00,19:00,2017-03-07

Особенность времени отправки смс: если в файле не указано время отправки смс, т.е. если не задано значение SendingTime, то во время импорта этого смс в базу данных ему задаётся разрешённое время отправки из конфигурации программы, см. Отправка сообщений. Если после импорта такого смс поменять время отправки по умолчанию, то это не повлияет на уже импортированные смс.

Отправка сообщений через базу данных

Для отправки через базу данных необходимо сначала подключиться к ней, используя строку подключения.

Строка подключения и соответствующие команды для используемой по умолчанию базы данных Microsoft Access (*.mdb) на примере nhdbt.

Подключение к базе данных в профиле текущего пользователя (расположение по умолчанию) в режиме терминала:

nhdbt -cs:"driver={Microsoft Access Driver (*.mdb)};ExtendedAnsiSQL=1;DBQ=%LOCALAPPDATA%\nhsms\nhsms.mdb;UID=admin"

Подключение к базе данных в профиле текущего пользователя (расположение по умолчанию) с выполнением запроса на добавление в очередь исходящего смс:

nhdbt -cs:"driver={Microsoft Access Driver (*.mdb)};ExtendedAnsiSQL=1;DBQ=%LOCALAPPDATA%\nhsms\nhsms.mdb;UID=admin" -q:"INSERT INTO nhsms(PhoneNumber,MessageText) VALUES ('8(900)000-00-00','Текст сообщения')"

В запросе к таблице nhsms используются поля:

ПолеТипОписание
MessageIDЧислоУникальный идентификатор, по умолчанию проставляется автоматически
MessageTypeСимволТип сообщения:
S — исходящее смс или ussd
D — входящее смс
R — статус доставки
PhoneNumberСтрокаНомер телефона для смс или код для USSD
MessageTextСтрокаТекст сообщения
MessageOptionsСтрока (3)Дополнительные параметры смс. Может включать символы

 

A — смс типа flash-sms (Flash-SMS/Alert-SMS)
R — передавать отчеты о статусе смс (Status Report Request)

ValidityPeriodСтрока (6)Срок действия смс
5m, 10m…55m, 1h, 1h5m…11h55m, 12h, 12h30m…24h, 1d,2d…30d, 5w,6w…63w
MessagePriorityСимволПриоритет сообщения, по умолчанию обычный
T — высший
P — высокий
N — обычный
L — низкий
B — низший
SendDaysСтрокаДни отправки, дата в формате yyyy-M-d, или список дней недели (одно или несколько значений Sun,Mon,Tue,Wed,Thu,Fri,Sat), или NULL (означает использование значения по умолчанию из конфигурации)
SendTimeFromВремяВремя «от» в формате H:mm или NULL
SendTimeToВремяВремя «до» в формате H:mm или NULL
CommandsСтрокаКоманды для выполнения после отправки сообщения; разделитель — перевод строки.
MessageStatusСимволСтатус сообщения
Исходящие сообщения:
Q — поставлено в очередь
S — идет отправка
T — отправлено
D — доставлено
Входящие сообщения:
R — идет чтение
C — считано полностью
Все сообщения:
E — ошибка

Отправка через базу данных реализуется SQL запросом на добавление строки в таблицу сообщений.

Самый простой запрос на создание сообщения с большинством параметров по умолчанию:

INSERT INTO nhsms(PhoneNumber,MessageText) VALUES ('8(900)000-00-00','Текст сообщения')

Создание сообщения с отправкой в рабочее время в рабочие дни:

INSERT INTO nhsms(PhoneNumber,MessageText,SendDays,SendTimeFrom,SendTimeTo) VALUES ('8(900)000-00-00','Текст сообщения','Mon,Tue,Wed,Thu,Fri','10:00','19:00')

Создание сообщения с отправкой в рабочее время в определённую дату:

INSERT INTO nhsms(PhoneNumber,MessageText,SendDays,SendTimeFrom,SendTimeTo) VALUES ('8(900)000-00-00','Текст сообщения','2017-03-10','10:00','19:00')

Использование базы данных даёт возможность внесения изменений в уже поставленное в очередь сообщение:

UPDATE nhsms SET MessagePriority = 'P' WHERE MessageID = 12345

Также имеется возможность удаления сообщения из очереди:

DELETE FROM nhsms WHERE MessageID = 12345

При отправке сообщения программа меняет его статус: Q -> S -> T -> D.

При чтении сообщения программа меняет его статус: R -> C.

Создать новое сообщение в базе данных можно

Особенности времени отправки смс: если не указано время отправки сообщений, т.е. если не заданы поля SendDays, SendTimeFrom и SendTimeTo, то используется время разрешённое время отправки из конфигурации программы, см. Отправка сообщений.

Отправка сообщений через параметры командной строки

В версии nhsms v3.0.0 эта возможность не поддерживается.

Отправка сообщений в режиме без базы данных

Отправка сообщений в режиме без базы данных в версии v3.0.0 и старше работает также, как в версии v2.xx.

Отправка смс через файлы

Новые параметры SendingPriority и SendingTime не работают в этом режиме – они будут проигнорированы программой и не повлияют на очерёдность отправки.

Отправка смс через параметры командной строки

Новые параметры SendingPriority и SendingTime не работают в этом режиме – их использование приведёт к ошибке.

Отправка сообщений в nhsms v3
Метки:

Одна мысль о “Отправка сообщений в nhsms v3

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *