Дерево страниц

resources/send_message_and_files/smsc_sender.py

Модуль взаимодействует с API сервиса https://smsc.ru/ для отправки смс сообщений с помощью класса SMSCSender. 

По умолчанию сервис smsc.ru отправляет сообщения от своего имени SMSC.RU.
При этом отправка на номера Мегафон/Йота недоступна т.к. имя SMSC.RU заблокировано оператором.

Мы настоятельно НЕ рекомендуем использовать стандартное имя SMSC.RU.
Для отправки смс от вашего буквенного имени необходимо его создать в разделе - https://smsc.ru/senders/ и зарегистрировать для операторов в колонке Действия по кнопке Изменить (после заключения договора согласно инструкции - https://smsc.ru/contract/info/ ) а также приложить гарантийное письмо на МТС в личный кабинет http://smsc.ru/documents/ и отправить на почту inna@smsc.ru

Сервис smsc.ru позволяет включить виртуальную отправку сообщений для бесплатного тестирования сервиса.
Подробнее по ссылке https://smsc.ru/api/http/send/virtualsms/


Аргументы класса

  • login (str): Логин пользователя сервиса smsc.ru
  • password (str): Пароль или md5 хеш пароля пользователя smsc.ru

Атрибуты класса

  • sender (str): Имя отправителя. Поробнее по ссылке: https://smsc.ru/help/imya-otpravitelya/
  • translit (bool): Если True - переводит сообщение в транслит. По умолчанию True
  • ignore_exceptions (bool): Если False вызывает ошибки, связанные с API, если True игнорирует ошибки. По умолчанию False.

Методы класса

  • parse_phones (str | Tuple[str] | List[str]) → List[str]: Парсит телефонные номера из строки, разделенной запятыми или tuple/list, при этом номера, которые не подходят под регулярное выражение \+*([\d]{5,15})[;,\n]* игнорируются.
  • get_balance(callback=None): Возвращает текущий баланс аккаунта в callback функцию. Можно использовать для проверки правильности логина/пароля.
  • send(phones, text): Отправляет сообщение на указанные номер/номера.
    Аргументы метода:
    • phones (str | Tuple[str] | List[str]): Список номеров телефонов, кому отправляем сообщение в формате 79999999999
    • text (str): Сообщение.

Примеры кода

Отправляем сообщение по нажатию горячей клавиши F1

import host
from smsc_sender import SMSCSender

sms_sender = SMSCSender("username", "password")

# Проверяем баланс акканута, а также правильность логина/пароля
sms_sender.get_balance(callback=lambda balance: host.message(balance))
    

def send_sms():
    # отправляем сообщение
    sms_sender.send("79999999999", "Hello world!")


# Вызываем функцию send_sms о нажатию клавиши F1
host.activate_on_shortcut("F1", send_sms)