Отправка сообщений в режиме базы данных
Поддержка базы данных добавлена в версии nhsms v3.0.0.
- База данных позволяет управлять очередью исходящих смс и задавать время отправки индивидуально для каждого смс.
- Также в режиме базы данных программа обновляет статус доставки отправленных сообщений в базу данных.
- Режим базы данных и параметры подключения настраиваются в редакторе конфигурации.
Отправка сообщений через файлы
В режим базы данных nhsms отправляет смс из файлов в два шага:
- импортирует сообщения из файлов в базу данных
- отправляет сообщения из базы данных в соответствии с разрешённым временем отправки и приоритетом сообщений
Для указания времени отправки и приоритета в версии v3.0.0 добавлены два параметра:
- SendingPriority — приоритет отправки
- SendingTime — приоритет отправки
Пример отправки сообщения через файлы:
[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) |
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
.
Создать новое сообщение в базе данных можно
- с помощью скриптов, см. Базы данных и скрипты
- в bat файлах с помощью программы nhdbt
Особенности времени отправки смс: если не указано время отправки сообщений, т.е. если не заданы поля SendDays, SendTimeFrom и SendTimeTo, то используется время разрешённое время отправки из конфигурации программы, см. Отправка сообщений.
Отправка сообщений через параметры командной строки
В версии nhsms v3.0.0 эта возможность не поддерживается.
Отправка сообщений в режиме без базы данных
Отправка сообщений в режиме без базы данных в версии v3.0.0 и старше работает также, как в версии v2.xx.
Отправка смс через файлы
Новые параметры SendingPriority и SendingTime не работают в этом режиме – они будут проигнорированы программой и не повлияют на очерёдность отправки.
Отправка смс через параметры командной строки
Новые параметры SendingPriority и SendingTime не работают в этом режиме – их использование приведёт к ошибке.
Уведомление:Отправка смс в nhsms + Microsoft Access - Tutorial