Отправка SMS уведомлений через Python

Отправка SMS уведомлений через Python

Автор: Рамис | Статьи 09 ноября 2022

Не так давно мне пришла задача, разработать небольшое приложение с дополнительной функцией СМС информирование. Одно из требований для информирования было, использовать сим карту которая будет так же работать в АТС для входящих и исходящих звонков. Приложение и телефонию в этой статье мы затрагивать не будем, я лишь покажу реализацию «дополнительной функции», отправки смс с помощью Python.

СМС информирование через Python

Как я и писал ранее, для отправки сообщений необходимо использовать сим карту. Приобретаем, и подключаем нужный тариф с бесплатными 500 смс в месяц (для данного проекта этого будет достаточно).

Yeastar TG100 Python

Оборудование долго искать не пришлось. Приобретаем недорогой, проверенный мной в других проектах шлюз Yeastar TG100, где реализована функция отправки сообщений с помощью GET запросов.

Yeastar TG100 Python

Подключаем оборудование. Через WEB интерфейс активируем в настройках шлюза возможность отправки СМС по API. (172.16.10.107 адрес компьютера с которого происходит отправка запросов)

Yeastar TG100 Python

Пробуем отправить сообщение GET запросом:

  • 172.16.10.10 - адрес шлюза
  • account=api_username – имя пользователя API
  • password=II@!abru2 – пароль API
  • port=1 – порт
  • destination=89370000000 – номер получателя
  • content=Hello+world! – текст сообщения
http://172.16.10.10/cgi/WebCGI?1500101=account=api_username&password=II@!abru2&port=1&destination=89370000000&content=Hello+world!

Как видим все работает, сообщение "Hello world!" доставлено.

Yeastar TG100 Python

Реализуем все с помощью HTTP библиотеки requests в Python.

#ramziv.com
from requests import get
from requests.utils import quote

IP = '172.16.10.10'
USERNAME = 'api_username'
PASSWORD = 'II@!abru2'

def send_message(message, phone, port=1):
    result = get(f'http://{IP}/cgi/WebCGI?1500101=account={USERNAME}&\
                    password={PASSWORD}&port={port}&destination={phone}&content={quote(message)}')
    return result.text


message = """Здравствуйте Рамис!
Ваша заявка №123 принята в работу.
"""

print(send_message(message, 89370000000))

Запускаем и смотрим результат.

Yeastar TG100 Python

Заключение

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

Комментарии

Markdown
Войти