Форум

Получаем SMS через SMPP в консоли

Для получения SMS с SMPP сервера с использованием Python и библиотеки smpplib, вам нужно выполнить несколько шагов. В отличие от отправки сообщений, получение SMS предполагает, что ваш клиент будет ожидать входящих сообщений от SMPP сервера.

Убедитесь, что библиотека smpplib установлена:
Код
pip install smpplib

Создание скрипта для получения SMS:

Код
import smpplib.clientimport smpplib.consts
# Данные для подключения к SMPP серверу# Замените на реальные данные вашего SMPP сервераSMPP_SERVER = "YOUR_SMPP_SERVER_IP"  # IP-адрес или доменное имя SMPP сервераSMPP_PORT = 2775  # Порт SMPP сервера (обычно 2775, но может отличаться)SYSTEM_ID = "YOUR_SYSTEM_ID"  # Уникальный идентификатор системы, предоставленный SMPP провайдеромPASSWORD = "YOUR_PASSWORD"  # Пароль для аутентификации на SMPP сервере
# Функция для обработки входящих сообщенийdef handle_message(pdu):    print(f"Received message: {pdu.short_message.decode('utf-8')}")    print(f"From: {pdu.source_addr}")    print(f"To: {pdu.destination_addr}")
# Создаем клиента SMPPclient = smpplib.client.Client(SMPP_SERVER, SMPP_PORT)
# Включаем логирование (опционально)client.set_message_received_handler(handle_message)
# Подключаемся и регистрируемся как приемникclient.connect()client.bind_receiver(system_id=SYSTEM_ID, password=PASSWORD)
# Ждем входящих сообщений (асинхронно)try:    client.listen()  # client.listen() будет работать до тех пор, пока не получит сообщение или не произойдет ошибкаexcept KeyboardInterrupt:    print("Disconnected from SMPP server.")
# Отключение от сервераclient.unbind()client.disconnect()

Что происходит:

  • handle_message: Это функция, которая вызывается при получении нового SMS. В ней вы можете обрабатывать или сохранять сообщения.

  • client.set_message_received_handler(handle_message): Устанавливает обработчик сообщений, который будет вызываться при получении SMS.

  • client.bind_receiver(): Регистрирует клиента как "приемник" сообщений. Это важно, так как SMPP сервер будет отправлять входящие SMS именно на приемников.

  • client.listen(): Этот метод запускает прослушивание сообщений и будет оставаться активным до тех пор, пока не произойдет прерывание (например, по нажатию Ctrl+C) или ошибка соединения.

Сохраните код в файл, например, smpp_receive.py, и выполните его:

Код
python smpp.py

Убедитесь, что все библиотека Python установлена. В моем случае Python был версии 3, поэтому код для запуска был
Код
python3 smpp.py

Когда SMS поступит на сервер, ваш скрипт получит сообщение и выведет его в консоль.

Для завершения работы скрипта можно просто прервать его выполнение, например, с помощью комбинации клавиш Ctrl+C.

Этот скрипт демонстрирует, как можно получать входящие SMS с SMPP сервера.

Проект на GitHub - https://github.com/exolve-community/smpp_exolve

1
114
Открытая тема
0 баллов

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

Авторизоваться
Здравствуйте!

Спасибо за найденный работающий способ вывода SMS в консоли. Очень полезная функция!
moderator
moderator
0 баллов
10 дней назад в 12:18