• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Помогите найти скетч для отправки сообщений на e-mail.

Cadil

New member
У меня дышит макет метеостанции отсюда - https://geektimes.ru/post/284994/. Хотелось бы дополнить код метеостанции для того, чтобы некоторую информацию с датчиков (критические параметры) отправлять по е-мейлу. Например, температура в помещении ниже 10С - отправить сообщение.

Тестировал "Библиотека отправки email через ssl соединение". Mail.ru, например, работает, но после некоторого числа отправленных сообщений предлагают платные услуги. То же самое услышал от работников сайта, где у меня оплачен хостинг - плати и делай настройки по своему усмотрению (правда, результата не обещают).

В работе "Web Термометр на WIFI esp8266 c отсылкой на e-mail (от батарейки)" сообщение отправляется php-скриптом с использованием своего хоста даже от несуществующего адресата. Это, на мой взгляд, серьезное преимущество, а недостаток (в плане моих задач) - код на lua. Переписать этот код на С++ мне не позволяет квалификация. Помогите найти что-то похожее, только на С++.
 
Последнее редактирование:

NeoroN

Member
Частые сообщения могут определяться как спам. На LUA написан обычный GET запрос - нет ничего проще. Открыть TCP соединение, отправить данные, закрыть соединение.
И вообще есть библиотека #include <ESP8266HTTPClient.h>
как составить ссылку с параметрами с помощью sprintf() или String думаю вам не нужно рассказывать.
 
Последнее редактирование:

Cadil

New member
... как составить ссылку с параметрами с помощью sprintf() или String думаю вам не нужно рассказывать.
Вы мне льстите!
Хотелось бы увидеть пример, чтобы использовать его как шаблон.
Задача в чистом виде:
Отправить с адреса user1@example1.com на адрес user2@example2.com сообщение "Привет, мир!", используя хостинг my_site.com.
 

Сергей_Ф

Moderator
Команда форума
@Cadil если вы будете слать сообщения каждую минуту, то ваше устройство точно забанят, независимо от того, как вы будете их слать.

Майл.ру работает и денег не просит при 5 письмах в день, точно. При отсылки 5 писем в за 5 минут (во время отладки) точно возникал отказ от отправки, по причине похожести на спам. Потом все опять работало. Денег не просили.
 
Последнее редактирование:

Cadil

New member
@Cadil если вы будете слать сообщения каждую минуту, то ваше устройство точно забанят, независимо от того, как вы будете их слать.

Майл.ру работает и денег не просит при 5 письмах в день, точно. При отсылки 5 писем в за 5 минут (во время отладки) точно возникал отказ от отправки, по причине похожести на спам. Потом все опять работало. Денег не просили.
Работал с Вашим скетчем в ручном режиме. Действительно, где-то на 5-м сообщении приходило предложение зарегистрироваться на biz.mal.ru.
Согласитесь - в работающем скрипте на lua нет этих ограничений. Помогите! Вы в теме и дело хорошее сделаете.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@Cadil с чем соглашаться? С тем что на хосте skorovoda.in.ua нет ограничений на отправку писем через локальный php? Согласен. Шлите через него. Но он вас тоже забанит со временем. Халява вечной не бывает. Вот запрос из указанного скетча.
Код:
sck:send("GET /php/un15.php?mymail="..MYMAIL.."&t="..t.."&v="..v.." HTTP/1.1\r\nHost: skorovoda.in.ua\r
Вы же хотите слать от себя? Вам провайдер и предложил выход - покупайте php- и email-хостинги дополнительно и шлите что хотите.
Можете, даже без авторизации.
 
Последнее редактирование:

Cadil

New member
@Cadil с чем соглашаться? С тем что на хосте skorovoda.in.ua нет ограничений на отправку писем через локальный php? Согласен. Шлите через него. Но он вас тоже забанит со временем. Халява вечной не бывает. Вот запрос из указанного скетча.
На хосте skorovoda.in есть ограничения 500 писем. 500 это не 5. У меня разумная отсылка - 1 письмо в час и то при выполнении условий.
К сожалению, мне не удалось подключиться к хосту через ваш скетч. Люди с хоста знают только стандартные протоколы, они не работают с отпечатками ...
 

Сергей_Ф

Moderator
Команда форума
@Cadil если у них нет возможности работать с отпечатками, то esp не сможет соединиться - банально не хватит ресурсов. Нужен посредник в виде того-же php, например.
 

Cadil

New member
@Cadil если у них нет возможности работать с отпечатками, то esp не сможет соединиться - банально не хватит ресурсов. Нужен посредник в виде того-же php, например.
И я о том же. Помогите найти такой скетч. Такой скрипт на ЛУА - есть, должен же быть и скетч на С++.
 

Сергей_Ф

Moderator
Команда форума
@Cadil нахрена Вам скетч на С++, если у Вас нет своего сервера с нужным php-скриптом? Извините за выражение, но вырвалось.
Скетч на Луа или на С++ ничего не делает, просто формирует запрос к php, а отсылку письма делает php-скрипт!!! Искать его за Вас я не буду, и переписывать для Вашего провайдера, тем более.
 

Cadil

New member
@Cadil нахрена Вам скетч на С++, если у Вас нет своего сервера с нужным php-скриптом? Извините за выражение, но вырвалось.
Ну как же нет? А вложение в посте 1, которое вы цитировали? Я в свое время повторил этот проект "Web Термометр на WIFI esp8266 c отсылкой на e-mail (от батарейки)", написанный на lua-скриптах.
Хотелось бы прочитать, что-то поближе к теме ....
 

fps

Active member
Cadil, вам ведь в первом же сообщении NeoroN исчерпывающе ответил.
От себя добавлю, что весьма странно желание использовать совершенно левый сервер, который могут закрыть в любой момент без объяснений, для отправки "критических параметров"
И вообще, я бы для таких оповещений использовал бота Telegram - работает мгновенно, не требует SSL, простейшее API - отправка сообщения одним простым http get'ом аналогично как в вашем примере.
 

Сергей_Ф

Moderator
Команда форума
@Cadil Это Ваш сервер skorovoda.in.ua ?
Кстати, от меня запросы на отправку писем с него по тому php-скрипту не проходят. Не хочет он обслуживать чужие запросы.
Если сервер Ваш, то просто отправьте на него запрос (хотя бы любым браузером)
Код:
http://skovoroda.in.ua/php/un15.php?mymail=cadam@ukr.net&t=20&v=333
и посмотрите придет вам почта или нет.
Дальше сами разберетесь с помощью примера BasicHttpClient из Ардуино ИДЕ. А если не разберётесь, то ... увы.

Если сервер skorovoda.in.ua не Ваш, то не надо на него возлагать какие-либо надежды. Воспользуйтесь советом выше.
 

Cadil

New member
@Cadil Это Ваш сервер skorovoda.in.ua ?
Кстати, от меня запросы на отправку писем с него по тому php-скрипту не проходят. Не хочет он обслуживать чужие запросы.
Если сервер Ваш, то просто отправьте на него запрос (хотя бы любым браузером)
У меня все работает, письма приходят.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
из Москвы не работает
Я не понимаю в чём, тогда, у Вас проблема?
Формируете строку с содержанием
"http://skovoroda.in.ua/php/un15.php?mymail=cadil@ukr.net&t=20&v=33"
и шлёте на сервер. Пример есть в ESP8266HTTPClient/BasicHTTPClient.ino
 

Вложения

pvvx

Активный участник сообщества
Вопрос в тему - а есть ли вообще где простой "скетч" отправки писем, к примеру через mail.ru или gmail.com и типа?
Полные SSL/TLS и прочее давно есть в дешевых RTL8710AF или ESP-32S - нет никакого смысла бодаться с устаревшим ESP8266...
 

Cadil

New member
Я, оказывается, рано радовался. После того, как пример
заработал с первой попытки - подключил этот код к коду термометра.
Скрипт компилируется, сообщения приходят, но с ошибкой. В команде
Код:
    //  http.begin("http://skorovoda.in.ua/php/un15.php?mymail=cadil@ukr.net&t=22,8&v=3,36"); //Работает!
       http.begin("http://skorovoda.in.ua/php/un15.php?mymail=cadil@ukr.net&t=celsius&v=3,36");   //переменная celsius НЕ ЧИТАЕТСЯ
не читается переменная температуры celsius. Т.е. приходят сообщения, где вместо температуры с датчика - название переменной celsius.
Помогите исправить ошибку в синтаксисе команды.
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@Cadil в синтаксиса нет никакой ошибки. Что Вы приказали, то и вывелось. В Яндексе или Гугле можно найти кучу примеров по формированию стоки для вывода. Вам нужно подставить в строку числовые значения из переменных.
Проще всего воспользоваться для этих целей функцией String(). Примеры есть даже в Ардуино ИДЕ.
 
Сверху Снизу