<分区>
谁能帮助我使用 UDP 创建一个简单、基本的电子邮件客户端和电子邮件服务器,并熟悉 SMTP 的工作原理?
我刚刚接触计算机网络,我只需要知道涉及的步骤。
谢谢。
<分区>
谁能帮助我使用 UDP 创建一个简单、基本的电子邮件客户端和电子邮件服务器,并熟悉 SMTP 的工作原理?
我刚刚接触计算机网络,我只需要知道涉及的步骤。
谢谢。
最佳答案
Internet RFC(征求意见)是此类信息的最佳来源:RFC 821 中概述了 SMTP。 .好消息是 SMTP 是一种基于文本的协议(protocol),就像 HTTP 和 friend 一样。
这是客户端 C
和服务器 S
之间的示例对话(取自维基百科):
S: 220 smtp.example.com ESMTP Postfix
C: HELO relay.example.org
S: 250 Hello relay.example.org, I am glad to meet you
C: MAIL FROM:<bob@example.org>
S: 250 Ok
C: RCPT TO:<alice@example.com>
S: 250 Ok
C: RCPT TO:<theboss@example.com>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: "Bob Example" <bob@example.org>
C: To: "Alice Example" <alice@example.com>
C: Cc: theboss@example.com
C: Date: Tue, 15 January 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 header fields and 4 lines in the message body.
C: Your friend,
C: Bob
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
{The server closes the connection}
为电子邮件使用 UDP 并不是最好的主意,因为 UDP 数据包可能会被丢弃。 TCP会更好用。但既然你提到这是一项任务,我想没关系。
因此,首先编写您的通用 UDP 客户端/服务器代码。然后修改它以支持 SMTP 命令。
我会首先实现简单的 echo
协议(protocol)。或者只是用您最喜欢的语言在线搜索 echo
协议(protocol)的一些源代码。例如,如果您想将 C++ 与 boost.asio 一起用于网络,它有 demo code对于 UDP echo
客户端和服务器。对于 Perl,有一些简单的 UDP 代码 here .
然后浏览您需要的 RFC 821 部分,然后从那里开始。我猜这是一项作业,您可能不需要协议(protocol)中的所有内容。
由于协议(protocol)只是简单的文本命令和响应,因此解析它应该不是问题。
关于c++ - 使用 UDP 的电子邮件客户端/服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824866/