Wiki
Clone wikirt-n56u / RU / Отправка e-mail с роутера
Отправка e-mail с роутера
Общая информация
В составе прошивки есть аплет sendmail, с помощью которого можно отправлять сообщения через SMTP-сервер. В общем виде это выглядит так:
echo "Моё сообщение" | sendmail -S"smtp.yourisp.com" -f"router@domain.com" you@domain.com
smtp.yourisp.com
— это SMTP-сервер провайдера, you@domain.com
— адресат, router@domain.com
— обратный адрес.
Совет: если провайдер не предоставляет SMTP, то можно воспользоваться сервисом Jango SMTP, позволяющего отправлять бесплатно до 200 сообщений в месяц.
Общедоступные почтовые службы вроде mail.ru, yandex.ru, gmail.com требуют защищённого соединения со своими SMTP-серверами, поэтому для отправки почты через них придётся использовать openssl. Два примера ниже показывают как это сделать.
Отправка сообщений на свой аккаунт yandex.ru
Поместите в файл /etc/storage/mail.sh
следующее содержимое:
#!/bin/sh LOGIN='vasya' PASSWORD='P@ssw0rd' if [ -z "$1" ]; then echo 'Say something.' exit 1 fi MSG=/tmp/e-mail.txt echo "From: Home router <$LOGIN@yandex.ru>" > $MSG echo -e 'Subject: Message from router\n' >> $MSG echo -e $1 >> $MSG echo -e '\n---- \nYour friendly router' >> $MSG sendmail $LOGIN@yandex.ru -H 'exec openssl s_client -quiet -tls1_2 -connect smtp.yandex.ru:465' < $MSG -au$LOGIN -ap$PASSWORD -f $LOGIN@yandex.ru > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 'Sent successfully.' else echo 'Error while sending e-mail.' exit 1 fi rm $MSG
LOGIN
, PASSWORD
и сделайте скрипт исполняемым:
chmod +x /etc/storage/mail.sh
/etc/storage/mail.sh "У попа была собака\nОн её любил."
Отправка сообщений на произвольный адрес через gmail.com
Поместите в файл /etc/storage/mail.sh
следующее содержимое:
#!/bin/sh FROM="your-gmail-address" AUTH="your-gmail-username" PASS="your-gmail-password" FROMNAME="Your Router" TO="your-email-address" if [ -z "$1" ]; then echo 'Say something.' exit 1 fi MSG=/tmp/e-mail.txt echo "From: $FROMNAME <$FROM>" > $MSG echo -e 'Subject: Message from router\n' >> $MSG echo -e $1 >> $MSG echo -e '\n---- \nYour friendly router' >> $MSG cat $MSG | sendmail -H 'exec openssl s_client -quiet -tls1_2 -connect smtp.gmail.com:465' \ -f"$FROM" -au"$AUTH" -ap"$PASS" $TO > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 'Sent successfully.' else echo 'Error while sending e-mail.' exit 1 fi rm $MSG
FROM
, AUTH
, PASS
, FROMNAME
, TO
и сделайте скрипт исполняемым:
chmod +x /etc/storage/mail.sh
/etc/storage/mail.sh "Новый IP-адрес роутера $(nvram get wan0_ipaddr)"
Updated