2015-11-05 9 views
1

Возможно, это не в нужном месте, поэтому скажите мне, и я переведу его.Отправка smtp электронной почты с микроконтроллера

Я недавний EE grad, и я был нанят для создания системы, которая существует на SoC с простым 32-битным процессором. Система в основном контролирует несколько внешних устройств и выполняет некоторые DSP на ней, а затем должна отправлять результаты с помощью устройства WiFi (в моем случае у меня есть ESP8266 с использованием UDP) на сервер электронной почты для регистрации/уведомления.

Я пытаюсь найти библиотеку, которую я могу использовать, но мой UC может программировать только на C, и я настроил его для UDP, и все на C++, используя какой-то другой протокол или что-то еще полностью.

Я отлично разбираюсь в DSP, порядочный в SoC's и UC, но когда дело доходит до этого сообщения об электронной почте, я затрудняюсь.

Я успешно настроил все для датчиков, датапата, DSP и подключил систему к моему WiFi через UDP, но мне еще предстоит выяснить, как отправлять данные на любые серверы.

Может ли кто-нибудь помочь мне понять, как я должен это делать?

Я изучил некоторые простые команды SMTP, такие как HELO, MAIL, RCPT, DATA и т. Д., Но я не могу понять, как я должен их реализовать в своем коде.

Когда я отправляю данные WiFi через UDP, какой тип данных я отправляю и как его форматировать? Нужно ли мне отправлять какие-либо другие флаги? Как я должен ожидать ответа? Я также знаю, что данные должны быть преобразованы в базу 64, которая меня сбивает с толку.

Я также не очень хорошо знаком с UDP, я использовал библиотеки, которые являются частью стандартной библиотеки SoC для подключения к моему WiFi.

Я знаю, что это может показаться явным или глупым вопросом, но это было то, что у меня больше нет никаких знаний, и все, что я нахожу в Интернете, не имеет смысла или не пытается объяснить это, просто дает предварительный -деланное решение

Я нашел RFC2821, но он не получил четкости.

Я знаю, что это очень много, но любая помощь вообще будет спасателем!

+1

SMTP нуждается в TCP (UDP - без установления соединения, а SMTP - для создания сеанса) RFC822, если вы еще не нашли его. – joop

+0

спасибо Я переключусь на это. Я не знал об этом. – scarlso9

ответ

1

Поскольку вы задаете этот вопрос, я предполагаю, что вы не загружаете и не запускаете ОС, подходящую для микроконтроллеров, таких как встроенный вариант Linux или такой. Если бы вы были, вы просто могли бы использовать возможно встроенные приложения или другой существующий код.

Но вы не упомянули о написании стека Ethernet, так что вы используете какую-то другую библиотеку или операционную среду, которая может иметь некоторые функции, необходимые для реализации SMTP?

Если вам не нужно и действительно нужно написать собственный SMTP-клиент для запуска непосредственно на процессоре, который вы используете, тогда вы сможете найти множество примеров исходного кода для этого. Быстрый поиск в Google How To Write an SMTP client показал несколько статей с некоторым примером кода. Один article кажется точным ударом, но вам нужно посмотреть на него дальше.

Тем не менее, я бы очень хотел просто сесть с помощью telnet client and connect to an SMTP server, вам разрешено использовать и попробовать команды, необходимые для просто отправки сообщения. Если вам нужно только отправить текст, вам не нужно участвовать в кодировке MIME или что-то в этом роде.

+0

Я не пользуюсь какой-либо библиотекой или операционной средой, поэтому мне либо нужно найти библиотеку, либо мне нужно написать собственный клиент smtp, я думаю. Я только что обнаружил момент telnet, прежде чем увидел свой пост, поэтому я проверю это. Я немного обновлюсь, когда попробую некоторые из ваших рекомендаций. Спасибо. – scarlso9

+0

Оказывается, что ESP8266 имеет стек tcp/ip на нем .... платит, чтобы провести полное исследование устройств, которые вы используете, а не предполагаете. спасибо за помощь, хотя. – scarlso9

Смежные вопросы