Т.к. у меня киевстар , была необходимость отправлять смс уведомления о закаченных торрентах
Методы что здесь нашел мне не подходили из-за того что мой оператор не поддерживается.
Единственное что мне подходило это отправка СМС сообщений с помощью google calendar
но вот тут я наткнулся на сервис нашего оператора "мобильная почта"
и с помощью него можно отсылать себе сообщения
преимущество перед гуглом календарем
- это то что сообщения сразу приходят
- не нужно делать синхронизацию времени
вот руководство
1. Регистрируйтесь на сайте kyivstar.mobi
Code:
Для пользования услугой «Мобильная почта» Вам нужно зарегистрироваться на сайте kyivstar.mobi или на ее wap-версии wap.kyivstar.mobi. Для этого на главной странице услуги нужно нажать на ссылку «Регистрация» и ввести следующую информацию:
имя пользователя (которое также будет названием почтового ящика:
[имя пользователя]@kyivstar.mobi);
пароль для входа в услугу;
имя;
фамилия;
телефонный номер (на этот номер будут приходить нотификации о новых сообщениях).
Также нужно ввести код регистрации, который поступит на Ваш номер в виде SMS-сообщения, и выбрать язык интерфейса пользователя и тип нотификаций о новых сообщениях. В дальнейшем для того, чтобы зайти в почтовый ящик, Вам нужно будет ввести имя пользователя и пароль на странице входа.
Для услуги необходимо, чтобы Ваш телефон поддерживал wap и sms.
Внимание! Для одного телефонного номера можно создать лишь один почтовый ящик «Мобильной почты».
2. после регистрации заходите в свой почтовый ящик там выбирайте "настройки" и там "Уведомления".
там выставляйте тип уведомления "SMS (остальные телефоны)"
и выбрать "послать SMS уведомления для каждого нового отдельного письма"
4. заходите в свой роутер, и устанавливаете сначала питон
Code:
ipkg install python
ipkg install bc
5. создайте папку /opt/etc/kyivstarSMS
Code:
md /opt/etc/kyivstarSMS
6. качайте скрипт kyivstarSMS.py из вложения и размещайте его на устройстве в папку /opt/etc/kyivstarSMS
Code:
#!/opt/bin/python
#
# Copyright (C) 2010 vassio@ukr.net.
#
text=""
receiver='[name]@kyivstar.mobi'
russian = 'utf-8'
smtp_server ='kyivstar.mobi'
textsend=''
import sys, os,getopt,smtplib,locale,email
from ConfigParser import ConfigParser
from ConfigParser import DuplicateSectionError
from smtplib import SMTPException
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP
try:
opts, args = getopt.getopt(sys.argv[1:], "", ["sender=", "receivers=", "text=","from=","smtp=","config="])
except getopt.error, msg:
print (''' kyivstarSMS [option]
Options:
--sender [sender] email sender
--receivers [receiver] the mailing address of the receiver
Necessarily should be name@kyivstar.mobi
--text [text] sent the text (mail Subject)
--from [text] from mail(any text)
--smtp [smtp server] smtp server
--config [configFile] config file to read
''')
configFile = '/opt/etc/kyivstarSMS/kyivstarSMS.config'
for opt, arg in opts:
if (opt == "--config"): configFile = arg
config = ConfigParser()
config.read(os.path.expanduser(configFile))
for opt, arg in opts:
if (opt == "--sender"):
sender = arg
else:
try:
sender = config.get('sendsms', 'sender')
except:
sender = '[name]@gmail.com'
for opt, arg in opts:
if (opt == "--smtp"):
smtp_server = arg
else:
try:
smtp_server = config.get('sendsms', 'smtp')
except:
smtp_server = 'kyivstar.mobi'
for opt, arg in opts:
if (opt == "--receivers"):
receiver = arg
else:
try:
receiver = config.get('sendsms', 'receivers')
except:
receiver = '[name]@kyivstar.mobi'
receivers=[receiver]
for opt, arg in opts:
if (opt == "--from"):
sender = arg
else:
try:
from_ = config.get('sendsms', 'from')
except:
from_ = 'My Router'
for opt, arg in opts:
if (opt == "--text"):
text = Header(arg, russian)
textsend=arg
if (text==""):
print (''' kyivstarSMS [option]
Options:
--sender [sender] email sender
--receivers [receiver] the mailing address of the receiver
Necessarily should be name@kyivstar.mobi
--text [text] sent the text (mail Subject)
--from [text] from mail(any text)
--smtp [smtp server] smtp server
--config [configFile] config file to read
''')
sys.exit(2)
msg = MIMEMultipart()
msg["Subject"] =text
msg["From"] = Header(from_, russian)
msg["To"] = Header('Master', russian)
m = "Router Sent (read subject)"
mm = MIMEText(m.encode('cp1251'), 'plain', russian)
msg.attach(mm)
try:
fromaddr = sender
toaddr = receiver
connect = SMTP(smtp_server)
# connect.set_debuglevel(1)
connect.sendmail(fromaddr, toaddr, msg.as_string())
connect.quit()
except SMTPException,e:
print "kyivstarSMS: unable to send email:",e
sys.exit(3)
print "kyivstarSMS:Successfully sent SMS: %s"%(textsend)
даем права на запуск
Code:
chmod 777 /opt/etc/kyivstarSMS/kyivstarSMS.py
7. создайте конфигурационный файл /opt/etc/kyivstarSMS/kyivstarSMS.config
пример содержимого файла
Code:
[sendsms]
smtp: kyivstar.mobi
sender: [name]@kyivstar.mobi
receivers: [name]@kyivstar.mobi
from: My Router
smtp SMTP сервер через который идет отправка почты
sender почтовый адрес отправителя(как правило должен быть зарегистрирован на SMTP сервер)
receivers получатель должен быть обязательно [name]@kyivstar.mobi
from от кого отправлено сообщение(любой текст) будет в SMS
8. качайте скрипт sendsms из вложения и размещайте его на устройстве в папку /opt/etc/kyivstarSMS
Code:
#!/bin/sh
PINGRESOURCE=google.com
message=""
case $# in 0)
echo " sendsms [-inet] [-?] [сообщ]"
echo " "
echo " -inet позволяет перед отправкой проверить "
echo " доступ к интернету(google.com), "
echo " пока интернет не появится сообщение не отправится"
echo " "
echo " -? эта справка"
exit 3;
;;
esac
for p in $*;
do
case "$p" in -?)
echo " sendsms [-inet] [-?] [-sync] [Сообщение]"
echo " "
echo " -inet позволяет перед отправкой проверить "
echo " доступ к интернету(google.com), "
echo " пока интернет не появится сообщение не отправится"
echo " "
echo " -? эта справка"
echo " сообщ сообщение которое будет отправлено"
exit 0
;;
-inet)
while (! ping -c 3 -w 3 -W 2 ${PINGRESOURCE} >/dev/null 2>&1) do
echo "kyivstarSMS: Сообщение не отправлено, подключение к интернету не обнаружено!!! "
logger "kyivstarSMS: Сообщение не отправлено, подключение к интернету не обнаружено!!! "
sleep 10s
done
;;
*)
message="$message $p"
;;
esac
done
log=`/opt/etc/kyivstarSMS/kyivstarSMS.py --text "$message"`
logger $log
exit 0
даем права на запуск
Code:
chmod 777 /opt/etc/kyivstarSMS/sendsms
8. сохраняйте изменения
Code:
flashfs save&&flashfs commit
9. собственно сама отправка СМС
отправка sms с проверкой доступности интернет(пинг google.com)
Code:
sendsms -inet [text]
отправка sms с синхронизацией времени
Code:
sendsms -sync [text]
пример
Code:
/opt/etc/kyivstarSMS/sendsms hello world
Дополнительно
1. Что бы при включении роутера отправлялось СМС с текущим IP адреса сервера, в файле /usr/local/sbin/post-mount добавить строчки
Code:
logger "sendsms:Отправляем информацию об успешной загрузке"
sleep 5s
ipaddr=`nvram get wan0_ipaddr`
smslog=`/opt/etc/kyivstarSMS/sendsms -inet "Your router $ipaddr is loaded"`
logger $smslog
2. Уведомление о закачке торрента в rtorrent
в /opt/etc/rtorrent.conf дописать
Code:
on_finished=send_finish_sms,"execute = /opt/etc/kyivstarSMS/sendsms,Торрент,$d.get_name=,успешно,скачан"
PS: Надеюсь что кому то пригодится))
так же надеюсь этот сервис не закроют