使用UDP的电子邮件客户端/服务器
Email Client/Server using UDP
有人能帮助我使用UDP创建一个简单、基本的电子邮件客户端和电子邮件服务器并熟悉SMTP的工作原理吗?
我刚开始电脑网络,我只需要知道其中的步骤。
谢谢。
Internet RFC(征求意见)是此类信息的最佳来源:SMTP在RFC 821中概述。好消息是SMTP是一个基于文本的协议,就像HTTP和朋友一样。
以下是客户端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
协议。或者只需在线搜索一些echo
协议的源代码(使用您喜欢的语言)。例如,如果您想将C++与boost.asio一起用于网络,它有UDPecho
客户端和服务器的演示代码。对于Perl,这里有一些简单的UDP代码。
然后浏览一下你需要的RFC 821的部分,然后从那里开始。我猜,既然这是一项任务,你可能不需要协议中的所有内容。
由于协议只是简单的文本命令和响应,解析它应该不会成为问题。
相关文章:
- C/C++ Linux 上的多线程服务器/客户端崩溃
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- ZMQ - 客户端服务器:客户端意外关闭,服务器如何检测到?
- C++服务器/客户端聊天程序
- Boost-Beast 异步 Web 套接字 服务器-客户端异步读写 不在控制台上写入输出
- 服务器客户端通过原始数据错误C 发送接收结构
- TCP 服务器/客户端:客户端 recv() 返回空白缓冲区
- 在使用 Poll() 的 TCP 服务器 - 客户端连接中,我是否需要手动设置事件?我从来没有到达 POLLOUT 来写
- 是否可以寻址另一个网络中的服务器/客户端套接字?(C++)
- 嗅探 QWebsocket 服务器 - 客户端通信
- C++(不是 C)中的示例服务器/客户端代码
- 如何将ZeroMQ用于多个服务器-客户端对
- 语言之间的服务器客户端首选项
- 服务器客户端程序上的QT-QFileSystemModel
- SFML网络服务器/客户端
- 服务器/客户端TCP异步(winsock)//FD_WRITE问题
- 基本服务器/客户端代码出现问题
- 将我的简单winsock服务器/客户端应用程序变形为简单的Web服务器
- C++ Winsock 服务器-客户端远程连接
- 修复:C++服务器/客户端程序:"Connection refused"