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

Поддержка базы данных добавлена в версии 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: 1 комментарий

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

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