Отправка электронного письма email с прикреплённым файлом из Arduino + SIM900
- Войдите на сайт для отправки комментариев
Втр, 24/02/2015 - 20:38
Добрый день!
Возникла необходимость периодически отправлять электронные письма с прикреплённым текстовым SMTP-файлом из Arduino. Для WIFI-модуля CC3000 даже упоминания на подобную функцию не нашёл. У SIM900 есть AT-команда, дающая такую возможность +SMTPFILE. Информации в сети очень мало по моей проблеме, единственное, что нашёл, это небольшая переписка на англоязычном форуме, которая вселяет надежду
www.edaboard.com/thread326603.html
Что скажете, в каком направлении двигаться? Все железки есть.
Прошу прощения, описка вышла. Файл, который необходимо отправлять, разумеется HTML, а не SMTP.
Проблема отправить электронное письмо, или проблема прикрепить текстовый файл к электронному письму ?
Хороший вопрос, пока я не умею ни того, ни другого. Не получается даже зарегистрировать sim-карту в сети. В идеале, хотелось бы увидеть готовый пример, или пообщаться с человеком, который уже реализовывал подлбную функцию. Чуть позже выложу код того, что уже написал.
Хороший ответ, зарегистрировать sim-карту в сети - уже полдела.))
Я умею отправлять письмо вот так:
Это работает, но есть нюансы. Кстати, текстовый файл можно не прикреплять, а прямо в тело письма вставлять, так проще будет.
С отправкой писем Ардуиной не все так просто.
Нужно подключиться к какому-нибудь серверу (mail.ru или gmail.com) и умудриться пройти STARTTLS.
Я вроде встречал в сети попытки реализовать это, но не помню удачных. Проще воспользоваться сторонним сервисом (есть и бесплатные) для отправки почты.
Если есть свой веб-сервер - можно использовать стандартные скрипты на отсылку почты.
Именно так, я тоже не смог найти готовых реализаций для STARTTLS, поэтому пользую свой почтовый сервер.
Именно так, я тоже не смог найти готовых реализаций для STARTTLS, поэтому пользую свой почтовый сервер.
"свой", это какой?
Спасибо за пример, буду разбираться. Я так понял, здесь на АТ-командах сделано? Файл будет содержать динамические данные, да и размер около 4кБ, боюсь, что у ардуины памяти не хватит, 512 байт она всего, если не прав, поправьте. Значит буду допиливать инициализацию sim900.
Размер не помеха, считали строку из файла, затем ее в client.println(TextToSend);, и так построчно и отправили.
Кстати, текстовый файл можно не прикреплять, а прямо в тело письма вставлять, так проще будет.
Вообще, идея отличная, сам так изначально хотел сделать, но после нескольких попыток встроить код HTML в письмо Яндекс.почты понял, что у меня руки кривые. В принятом по почте письме отображался только обычный HTML-код.
Поделитесь опытом, как можно встроить HTML-страницу в тело письма, т.к. сам HTML-файл содержит таблицы и др.форматированный текст.
После нескольких неудачных попыток работы с AT-командами, решил скачать и воспользоваться библиотекой с примерами от производителя GPRS/GSM Shield на сайте makerstudio.cc.
Пример отправляет sms-сообщения. Мелочь, но уже хоть что-то ))
Продолжу сам, раз уж никто пока не пишет.
Перешёл я всё-таки на AT-команды и привязал SoftwareSerial к Serial-монитору (см.выше)
При попытке узнать текущие настройки GPRS Serial-монитор выводит обрезаный фрагмент ответа модуля SIM900:
AT+SAPBR=4,1
+SAPBR:
CONTYPE: GPRS
APN:
PHONENUM:
USE
и всё, дальше обрезается, а должно быть USER и ещё много другой информации.
Может я неправитьно связал Serial-порты? Парни, выручайте! )
Продолжим.
Кто-нибудь знает, стандартная прошивка позволяет работать с функциями EMAIL или необходимо искать другую?
Дело в том, что при попытке отправить модулю SIM900 команды касаемые EMAIL, в ответ я получаю ERROR.
Можно какой нибудь пример? я пытался отправить email используя данный шаблон ничего не получилось.
Во первых сервер SMTP должен быть без SSL - ардуино не сможет его закодировать.
Во вторых пользоватль пароль и все бинарные данные кодируются в base64 - тоесть должны быть заранее подготовленны.
Если хочется прикреплять файлы создавамые на arduino то нужно функцию по кодированию данных в base64.
А само общение с сервером это подключение по tcp и отправка ему текстовых данных, а пример представленный выше всего лишь заготовка(так как не содержит не имени сервера. ни пользователя с паролем).
Именно так, я тоже не смог найти готовых реализаций для STARTTLS, поэтому пользую свой почтовый сервер.
"свой", это какой?
Прошу прощения, недоглядел, вопрос остался неотвеченным. "Свой" - это бесплатный hMailServer, стоящий на одном из моих серверов, не использует SSL/TLS и прочего, старый классический POP3 и SMTP.
Свои попытки отправлять почту через более современные почтовые шлюзы я давно забросил (по причине SSL/TLS), да и тема электропочты применительно к Ардуино не особо популярна в Интернете, информации крайне мало.