c - 从微 Controller 发送smtp电子邮件

标签 c smtp udp server microcontroller

这可能不在正确的位置,所以告诉我,我会移动它。

我是一名刚毕业的电子工程专业毕业生,我受雇构建一个系统,该系统存在于具有简单 32 位处理器的 SoC 上。该系统基本上监控多个外部设备并在其上执行一些 DSP,然后应该使用 WiFi 设备(在我的例子中我有使用 UDP 的 ESP8266)将结果发送到电子邮件服务器以进行日志记录/通知。

我一直在努力寻找一个我可以使用的库,但我的 uC 只能用 C 编程,而且我已经为 UDP 设置了它,并且一切都在 C++ 中使用一些其他协议(protocol),或者完全是其他东西。

我很擅长 DSP,在 SoC 和 uC 方面也不错,但是当涉及到电子邮件服务器通信这件事时,我不知所措。

我已经成功地配置了传感器、数据路径、DSP 的所有内容,并通过 UDP 将系统连接到我的 WiFi,但我还没有弄清楚如何将数据发送到任何服务器。

谁能帮我理解我应该怎么做?

我研究了一些简单的 SMTP 命令,如 HELO、MAIL、RCPT、DATA 等,但我不明白我应该如何在我的代码中实现它们。

当我通过 UDP 发送 WiFi 数据时,我发送什么类型的数据以及如何格式化它?我需要发送任何其他类型的标志吗?我应该如何期待回应?我也知道数据必须转换为 base 64,这让我更加困惑。

我一开始也不太熟悉 UDP,我一直在使用属于 SoC 默认库一部分的库来连接到我的 WiFi。

我知道这些问题可能看起来很明显或很愚蠢,但如果我不再有任何知识,并且我在网上找到的所有内容都没有意义,或者不试图解释它,只是给出一个预制作解决方案

我找到了 RFC2821,但它并没有变得更清晰。

我知道这很多,但任何帮助都是救命稻草!

最佳答案

既然你问了这个问题,我假设你没有启动和运行适合微 Controller 的操作系统,例如 Linux 的嵌入式变体等。如果是,您将能够简单地利用可能内置的应用程序或其他现有代码。

但是您没有提到已经编写了一个以太网堆栈,那么您是否使用了一些其他库或操作环境,这些库或操作环境可能具有实现 SMTP 所需的某些功能?

如果您不这样做并且确实需要编写自己的 SMTP 客户端以直接在您使用的处理器上运行,那么您应该能够找到大量的源代码示例。快速谷歌搜索 How To Write an SMTP client展示了一些带有示例代码的文章。一article似乎是准确命中,但您需要进一步查看。

但是,我强烈建议您坐下来使用 telnet client and connect to an SMTP server您可以使用和尝试发送消息所需的命令。如果你只需要发送文本,你不需要参与 MIME 编码或类似的事情。

关于c - 从微 Controller 发送smtp电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33550621/

相关文章:

c - 怎样把数字变成两位数

javascript - 在 Google Native Client 上运行编译后的文件

c - 在繁忙的目录上使用 inotify

python - 无法从 python 发送带有附件的电子邮件?

email - 使用 Golang 通过 G Suite 发送电子邮件

c - 为什么我在 C 中使用 UDP 套接字接收文件时会出现一些垃圾字节?

c++ - 如何检查 `strcmp`是否失败?

python - 用python编写简单的SMTP服务器

java - 通过 UDP 发送 byte[] 导致 byte[] 值发生变化

Python 查询游戏服务器