Одной из функций умного дома является уведомление хозяина об определенных событиях. В данной статье я опишу как отправлять электронную почту с роутера с прошивкой openwrt.
В качестве программы для отправки писем я выбрал пакет ssmtp ввиду простоты и малого требования к ресурсам.
Для начала нам нужно обзавестись почтой от google.com. Если у вас еще нет там почтового адреса, то регистрируемся на gmail.com и создаем себе новую почту. Можно конечно воспользоваться электронной почтой и от другого поставщика данной услуги, но в этом случае вам нужно будет самостоятельно узнать его настройки.
1.Подключаемся к роутеру ssh-клиентом и устанавливаем openwrt пакет ssmtp
opkg install ssmtp
2.Делаем резервную копию файла настроек и редактируем его
nano /etc/ssmtp/ssmtp.conf
Все изменения я пометил своим ником #mszerg
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
#mszerg
#root=postmaster
root=username@gmail.com
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and your mailhub is so named.
#mszerg
#mailhub=mail
mailhub=smtp.gmail.com:465
# Example for SMTP port number 2525
# mailhub=mail.your.domain:2525
# Example for SMTP port number 25 (Standard/RFC)
# mailhub=mail.your.domain
# Example for SSL encrypted connection
# mailhub=mail.your.domain:465
# Where will the mail seem to come from?
#mszerg
#rewriteDomain=
rewriteDomain=gmail.com
# The full hostname
hostname=localhost
# Set this to never rewrite the "From:" line (unless not given) and to
# use that address in the "from line" of the envelope.
#mszerg
#FromLineOverride=YES
FromLineOverride=YES
# Use SSL/TLS to send secure messages to server.
#mszerg
#UseTLS=YES
UseTLS=YES
# Use SSL/TLS certificate to authenticate against smtp host.
#UseTLSCert=YES
# Use this RSA certificate.
#TLSCert=/etc/ssl/certs/ssmtp.pem
# Get enhanced (*really* enhanced) debugging information in the logs
# If you want to have debugging of the config file parsing, move this option
# to the top of the config file and uncomment
#Debug=YES
#mszerg
AuthUser=username@gmail.com
AuthPass=*******
Не забываем поменять в файле username на свое название e-mail. А также прописать пароль в AuthPass, с помощью которго вы заходите на свою почту. Последних двух строк стнастройками
AuthPass=*******
почему то в стандартном конфиге нет, поэтому допишите их самостоятельно.
3.Teстируем отправку электронной почты
Для этого создаем файл письма, которое будем отправлять
И отправляем его
Ключ -v нужен для вывода подробного лога отправки. В дальнейшем его можно не использовать.
В итоге, если все в порядке, то вы получите следующий вывод на экран и ваше письмо будет доставлено по адресу Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., в качестве отправителя будет фигурировать ваш адрес username@gmail.com из файла /etc/ssmtp/ssmtp.conf
[<-] 220 mx.google.com ESMTP b49sm12656085eem.16
[->] EHLO mszerg.pp.ua
[<-] 250 ENHANCEDSTATUSCODES
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] bXN6ZXJnMkBnbWFpbC5jb20=
[<-] 334 UGFzc3dvcmQ6
[<-] 235 2.7.0 Accepted
[->] MAIL FROM:<Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>;
[<-] 250 2.1.0 OK b49sm12656085eem.16
[->] RCPT TO:<Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>;
[<-] 250 2.1.5 OK b49sm12656085eem.16
[->] DATA
[<-] 354 Go ahead b49sm12656085eem.16
[->] Received: by mszerg.pp.ua (sSMTP sendmail emulation); Sat, 12 Jan 2013 14:25:32 +0200
[->] From: "root" <Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.>;
[->] Date: Sat, 12 Jan 2013 14:25:32 +0200
[->] Привет - это тестовое письмо
[->]
[->] .
[<-] 250 2.0.0 OK 1357993535 b49sm12656085eem.16
[->] QUIT
[<-] 221 2.0.0 closing connection b49sm12656085eem.16
В файле письма можно задать дополнительные параметры
From: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.;
To: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.;
Subject: Тема письма
Текст письма...
4. Теперь я расскажу как отправлять соoбщение на почту одной строкой, без предварительного ручного создания файла. Для этого используем следующую команду, которую можно смело использовать в любом скрипте.
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
" >> /tmp/newmessage;echo "Это новое тестовое сообщение" >> /tmp/newmessage; ssmtp Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
</tmp/newmessageТеперь можно аналогичную команду вставить в скрипт и повесть его на событие в программе по записи видео при движении на событие обнаружение движения.
Например делаем скрипт
echo "Subject: Movment detect" > /tmp/newmessage;echo "From: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра." >> /tmp/newmessage
echo "Alert!!!! Home movement detect" >> /tmp/newmessage; ssmtp Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. </tmp/newmessage
Делаем файл исполняемым
Проверяем пришло ли сообщение
Если все в порядке то подключаем его к событию в motion detection
Например
Все теперь при начале движения в камере вам на почту будет приходить уведомление.