Как отправить сообщение на телефон python
Для Python
from datetime import datetime
from time import sleep
import smtplib
try:
from urllib import urlopen , quote
except ImportError :
from urllib . request import urlopen
from urllib . parse import quote
class SMSC (object):
def send_sms ( self , phones , message , translit = 0 , time = "" , id = 0 , format = 0 , sender = False , query = "" ):
formats = [ "flash=1" , "push=1" , "hlr=1" , "bin=1" , "bin=2" , "ping=1" , "mms=1" , "mail=1" , "call=1" , "viber=1" , "soc=1" ]
def send_sms_mail ( self , phones , message , translit = 0 , time = "" , id = 0 , format = 0 , sender = "" ):
server = smtplib . SMTP ( SMTP_SERVER )
if SMSC_DEBUG :
server . set_debuglevel ( 1 )
if SMTP_LOGIN :
server . login ( SMTP_LOGIN , SMTP_PASSWORD )
def get_sms_cost ( self , phones , message , translit = 0 , format = 0 , sender = False , query = "" ):
formats = [ "flash=1" , "push=1" , "hlr=1" , "bin=1" , "bin=2" , "ping=1" , "mms=1" , "mail=1" , "call=1" , "viber=1" , "soc=1" ]
if SMSC_DEBUG :
if m [ 1 ] > "0" :
print( "Стоимость рассылки: " + m [ 0 ] + ". Всего SMS: " + m [ 1 ])
else:
print( "Ошибка №" + m [ 1 ][ 1 :])
if all and len ( m ) > 9 and ( len ( m ) < 14 or m [ 14 ] != "HLR" ):
m = ( "," . join ( m )). split ( "," , 8 )
if SMSC_DEBUG :
if len ( m ) < 2 :
print( "Сумма на счете: " + m [ 0 ])
else:
print( "Ошибка №" + m [ 1 ][ 1 :])
return ifs ( len ( m ) > 1 , False , m [ 0 ])
while ret == "" and i <= 5 :
if i > 0 :
url = _url . replace ( "smsc.ru/" , "www" + str ( i ) + ".smsc.ru/" )
else:
i += 1
try:
if SMSC_POST or len ( arg ) > 2000 :
data = urlopen ( url , arg . encode ( SMSC_CHARSET ))
else:
data = urlopen ( url + "?" + arg )
ret = str ( data . read (). decode ( SMSC_CHARSET ))
except :
ret = ""
Хотел найти уже готовый вариант скрипта по отправки sms на Python, но все было не то. Как то слишком большой код для такого простого дела. Написал небольшую функцию которая облегчила мою работу и надеюсь, что и вашу тоже.
Шаг 1
Пожалуй самый главный шаг при начале написания скрипта по отправке смс. Поиск хорошей системы по отправке смс, поискал в интернете, прочитал отзывы и каждый раз перед глазами мелькала одна компания SMSC. Зарегистрировался, посмотрел их API и обрадовался, что имеющейся функционал в полной мере удовлетворяет мои требования для решения поставленной задачи.
Шаг 2
После регистрации вам нужно будет зарегистрировать свое уникальное имя отправителя. После некоторых изменений правил от сотовых операторов, возможность менять динамично имя отправителя отменили. Теперь приходится ждать подтверждения имени отправителя, но это не страшно - поддержка работает быстро!
Совет: Чем адекватнее и уникальнее будет название, тем быстрее и без лишних вопросах пройдете проверку.
PS: Да, имя отправителя можно не регистрировать, но тогда ваши получатели будут видеть вместо имени - обычный незнакомый им номер телефона.
Заходим во вкладке Настройки -> Имена отправителей:
Нажимаем "Добавить новое имя" и наполняем поля. Все поля обязательны, в поле "Комментарий" так же лучше будет если вы опишите как можно четче необходимость этого имени. Чем адекватнее будут наполнены поля тем быстрее будет активация. Ждем пока статус будет " допущено " и можем использовать данное имя в нашей программе.
Скрипт отправки SMS Python
Нам понадобиться библиотеки urllib, json, time
Первая urllib и time уже установлены, а вот json если еще не устанавливали для других нужд придется устанавливать сейчас.
Всю работу выполняет одна функция send_sms() ей передаются параметры:
Настройка
В самом теле функции меняем данные для входа в SMSC на свои.
login, password будут логин и пароль для входа в личный кабинет в smsc. В sender нужно прописать имя отправителя которого вам подтвердили служба поддержки.
Рассылка SMS на Python
Ограничение нужна если отправляется один и тот же текст.
Вот и все, скрипт можно менять. Тарифы на их сайте не окончательные их можно менять в зависимости от объемов вашей рассылки. Тех. поддержка очень быстрая так, что в случае чего можете писать там. Если возникнут проблемы со скриптом - пишите в комментариях помогу чем смогу ;)
Amazon Web Services (AWS) предоставляют Lambda — бессерверную среду, позволяющую программистам выполнять дискретные функции без сервера. Написать и развернуть функцию AWS Lambda можно очень быстро, и она не нуждается в такой в поддержке, как, например, приложение, работающее на виртуальном сервере типа EC2. Функции в Lambda дешевы: обычно Amazon просит 20 центов (13 рублей) за миллион запросов (каждое выполнение функции считается запросом), а первый миллион запросов в месяц является бесплатным всегда и для всех пользователей. AWS предлагает множество методов для запуска этих дешевых и простых функций. В данной статье мы расскажем, как использовать AWS Lambda для отправки и получения СМС.
Получение СМС
Прежде всего, вам нужен аккаунт в AWS. Этот аккаунт даст вам доступ ко всем сервисам AWS, а также к «бесплатному уровню», позволяющему по доступной цене или абсолютно бесплатно попробовать большую часть продуктов и даже запустить небольшие приложения. Зайдите в аккаунт, перейдите к Lambda и создайте новую функцию.
Имя функции может быть любым. Выберите Python 3.7, самый стабильный релиз Python 3, в качестве среды исполнения. AWS оперирует всеми своими сервисами, используя разрешения на основе ролей, систему, о которой в рамках этой статьи мы говорить не будем (хотя мы и рассмотрим ее позже). Для этой функции, выберите "Create a new role with basic Lambda permissions", и AWS все сделает за вас. После настройки параметров, кликните "Create Function", чтобы попасть на страницу редактирования функции.
В этом окне есть несколько важных кнопок. Самая важная — "Save" сохраняет любые изменения в Lambda-функции, а "Test" дает вам писать и выполнять тесты для вашей функции. Если вы не нажмете кнопку "Save", изменения в вашей функции не будут сохранены.
Дизайнер функции в Lambda позволяет вам выбрать, какие сервисы могут запускать функцию, и к каким из них функция может обращаться во время запуска. Мы будем использовать следующие сервисы: SNS (Simple Notification Service — Простой сервис уведомлений), CloudWatch Events для триггеров, а Amazon Pinpoint и Amazon CloudWatch Logs во время выполнения функции.
Чтобы добавить сервис в функцию, просто кликните на него в списке слева от дизайнера. Для начала добавьте SNS в качестве триггера. Вам нужно будет присвоить SNS роль, необходимую для запуска Lambda-функций (AWS предложит вам это сделать), затем сохранить функцию. Обновите страницу и прокрутите вниз, чтобы увидеть код функции.
После того, как вы активируете свой первый Pinpoint-проект, на экране настроек кликните "Manage" под "SMS and Voice".
Не забывайте о том, что event — это просто словарь, и именно поэтому мы можем протестировать Lambda-функцию с помощью создания собственного события. Сохранив тест, нажмите "Test" в правом верхнем углу экрана, чтобы выполнить Lambda-функцию. При успешном выполнении консоль покажет вам, что вернула функция.
Отправка СМС
Эту систему можно использовать для создания СМС-чатбота, например, виртуальной службы поддержки клиентов (хотя веб-чат будет в разы дешевле). Еще одна область применения — отправка отложенных СМС. Изменив триггер с SMS на события CloudWatch, можно создать приложение, каждое утро уведомляющее вашего босса о вашем опоздании с извинениями. Выберите "CloudWatch Events" в левом меню и настройте параметры, как показано на рисунке.
Оправдания получше, как и установка номера AWS Pinpoint в качестве вашего контакта в телефоне вашего начальника, лежат на ваших плечах. Я, конечно же, ни в коем случае не одобряю подобные вещи.
Давайте повторим, что мы сегодня использовали:
-
для бессерверных функций, для получения уведомлений и СМС, для отправки СМС и получения телефонного номера, для управления доступом и разрешениями, для процессов мониторинга, регистрации и запуска.
Мы рассказываем, как стать более лучшим разработчиком, как поддерживать и эффективно применять свои навыки. Информация о вакансиях и акциях эксклюзивно для более чем 8000 подписчиков. Присоединяйся!
Научите вас использовать Python для отправки уведомлений на мобильные телефоны
Вы когда-нибудь хотели попробовать отправлять уведомления на свой телефон на сервере или компьютере?
Вы когда-нибудь беспокоились о механизме защиты корпоративных почтовых ящиков от преследований?
Теперь мы можем использовать простой и легкий способ заменить деловой почтовый ящик!
Для проведения следующих экспериментов вам необходимо произвести следующие приготовления.
- 1) Зарегистрируйтесь и загрузите IFTTT на свой телефон
- 2)Python3
Вот конкретные шаги:
1. Сначала зарегистрируйте учетную запись IFTTT.
2. Перейдите на страницу my_applets и создайте новый апплет.
После ввода нажмите +, как показано на рисунке.
Напишите название триггера
Затем щелкните по нему.
Его можно задать в следующем формате:
Хорошо, подготовка завершена, приступаем к написанию скриптов Python!
3. Теперь в разделе «Мои апплеты» вы должны увидеть только что созданные веб-перехватчики. Щелкните и нажмите «Подробнее». Затем введите указанные ниже веб-перехватчики. Как показано на рисунке.
После ввода нажмите «Документация» в правом верхнем углу.
После ввода вы увидите свой Ключ об этом приложении. Вы можете видеть, что его метод вызова заключается в отправке запроса POST или GET по следующему URL-адресу:
Среди них вы также можете взять три параметра и поместить их в тело в формате json, например , и Value1 в последнем уведомлении будет заменено этим value1.
Откройте CMD (Windows) / Терминал (macos), чтобы войти в каталог файлов и запустить:
python notice.py
После завершения операции на телефоне должно появиться уведомление. Если вы не получили уведомление, проверьте настройки системы, чтобы узнать, есть ли у вас разрешение на уведомление IFTTT.
Читайте также: