gpt4 book ai didi

arduino - 如何在不使用计算机的情况下使用Arduino发送电子邮件?

转载 作者:行者123 更新时间:2023-12-02 10:29:52 29 4
gpt4 key购买 nike

我正在尝试使用Arduino Mega。我也有一个Arduino Ethernet Shield

我需要使用电子邮件发送电子邮件,而无需借助计算机(或任何其他设备;例如智能手机等)。尽管我可以找到几篇文章,但找不到任何可接受的解决方案...

我该怎么做?由于我不要求将其用于任何特殊应用,因此您可以
对丢失的细节做出任何假设。

最佳答案

从上面的评论讨论中,似乎您需要从刚为您完成代码的人那里获取代码,或者您需要花一些时间来了解组件并查找或制造组件。

如果仅对非标准数据包有用,他们将不会为该平台提供以太网屏蔽。因此,某处的某个人已经创建了某个级别的IP堆栈。

但是,要进行备份,要发送邮件,您需要学习Simple Mail Transfer Protocol(SMTP)。几乎所有的Internet协议定义都是使用RFCs(请求注释)定义的。因此,如果您使用SMTP RFC进行搜索,则会找到RFC 2821

IETF是Internet工程任务组。这些文件将在许多网站上有很多副本。并且由于Internet的时代和这些协议的存在,在许多情况下,您会发现已经创建了一个RFC来代替以前的RFC。没有使用版本号,但是有点像HTML 1.0和HTML 2.0等等。我建议即使RFC声明它完全替代RFC xyz,也请找到RFC xyz并阅读。我回过头来发现可以学习,然后继续前进。

许多基于TCP的协议(TCP是RFC中定义的另一种协议,稍后再介绍)中的大多数/大多数协议都是基于ASCII的,例如,Telnet可以非常容易地学习/使用该协议进行实验,您可能可以使用Telnet学习SMTP。

大多数协议都是某种半双工的东西,建立连接后,服务器通常会向您发送一个字符串,您会看到该字符串,然后发送某种问候字符串,服务器会以某种OKAY或失败状态进行响应。对于SMTP,然后执行某种操作,即从该电子邮件地址发送邮件,服务器说OKAY,您说我要向此人或此人列表发送邮件,因为每个电子邮件地址都可以通过或无法通过。最终,您告诉服务器您准备发送消息的主体,然后执行此操作,并以定义的终止符结束消息。然后,要么服务器说正常还是失败,或者可能还有更多的握手信号。

一般而言,协议具有这种来回关系。通常,您使用命令发送字符串,并且通常服务器端会发回简短的确认信息或错误信息。有时,如果他们愿意,他们会发送回有关错误的更多详细信息,但始终以表明正常或错误的几个字节开头。协议通常都有一个流程,您必须先执行然后再执行。

您应该学习套接字编程,有时称为Berkeley sockets。您可以编写程序,这些程序通常可以跨UNIX移植,也可以使用Windows套接字跨Windows移植(如果您选择的平台)。您需要首先学习该协议,并且它在台式机/笔记本电脑上更好,而不是嵌入式的,因此可以更快地完成。您不必学习使用派生套接字的方式。这些示例可能表明,以这种方式显示很容易,但是您只能使用轮询来编写完整的应用程序,这是半双工发送,等待,发送,等待。对于这些简单的学习程序,需要一点时间来学习套接字,然后从那里开始学习协议。

现在这是非常简单的部分,最困难的部分是TCP / IP堆栈。我不建议您尝试这种方法,而不能获得更多在沿途踩婴儿的经验。例如,先学会响应ARP(还需要另一个RFC协议,地址解析协议),然后再响应pingICMP echo,ICMP协议的一个子集),然后再响应IP基础(嗅探数据包),然后接收并响应。生成UDP数据包。 TCP高于此水平,握手更多。它不是固定的数据包大小,它是流式传输,不需要您的代码对数据包进行操作,它是字节流,就像使用串行端口一样。

做自己的TCP堆栈绝非易事,我不建议这样做,您需要找到已经为此平台做过TCP / IP堆栈的人以用作以太网屏蔽,并且随便使用RTOS或他们使用的环境,请使用它。然后,根据您在台式机/笔记本电脑上的使用经验,使用该协议。

从上面的讨论中,如果您不想学习协议等,我认为您需要在google上查看Arduino以太网屏蔽示例,看看是否有人做过一些发送电子邮件的事情。

关于arduino - 如何在不使用计算机的情况下使用Arduino发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119022/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com