编写一个简单的电子邮件服务器

10
有关创建电子邮件服务器的学习起点是什么?
基本上,我想要一个服务器(例如foo.com)来接收我的邮件,所以如果我发送一封邮件到(blah@foo.com),它将把邮件内容转储到/mail/blah/subject中,然后发送到我的真实电子邮件账户。
我想把这个当作编程练习来做,因此RFC等链接会很好。重新发明轮子是了解轮子的好方法。
编辑:请随意适当地重新标记此问题。

在谷歌上输入“SMTP RFC”不比输入整个问题更容易吗? - Jerry Coffin
3
但我不知道这是否足以接收和转发电子邮件。 - Clark Gaebel
2
虽然我不想打击你学习的积极性,但邮件服务器中唯一“简单”的事情就在于它所使用的协议名称(简单邮件传输协议 - SMTP)。 - Erik Funkenbusch
1个回答

5

编辑: 我添加了一些标题,并按主题划分了RFC。希望现在更易于访问。这是一个相当长的列表,我希望我可以更好地格式化它,但不幸的是,就这样吧。

由于您提到您不知道您需要什么,让我澄清一下:

  • 如果您只想实现一个简单的“代理”服务器,该服务器位于您的MUA(电子邮件客户端)和“真实”服务器之间,那么您可能只需实现基本的SMTP功能。这将允许您发送消息,即向MTA提交消息。

  • POP3用于电子邮件客户端从您的服务器中拉取消息,而IMAP是POP3的替代品,具有略微不同的功能集,主要提供可在线或离线模式,可以将其视为管理远程文件夹(即邮箱)。

  • MIME指定电子邮件消息内容的格式,存在多部分消息、附件等。

互联网消息格式(也定义了电子邮件地址格式)

http://www.faqs.org/rfcs/rfc822.html

http://www.faqs.org/rfcs/rfc2822.html


SMTP:

http://www.faqs.org/rfcs/rfc821.html

SMTP/RF821的更新:

http://www.faqs.org/rfcs/rfc5321.html

SMTP-AUTH:

http://www.faqs.org/rfcs/rfc2554.html

消息提交(即应用程序充当MUA):

http://www.faqs.org/rfcs/rfc2476.html


IMAPv4:

http://www.faqs.org/rfcs/rfc1730.html

IMAPv4rev1:

http://www.faqs.org/rfcs/rfc2060.html


POP3:

http://www.faqs.org/rfcs/rfc1081.html

http://www.faqs.org/rfcs/rfc1939.html

http://www.faqs.org/rfcs/rfc1957.html

POP3扩展功能:

http://www.faqs.org/rfcs/rfc2449.html

POP/IMAP授权:

http://www.faqs.org/rfcs/rfc2195.html

POP3和IMAP的TLS:

http://www.faqs.org/rfcs/rfc2595.html

POP3的AUTH-RESP-CODE:

http://www.faqs.org/rfcs/rfc3206.html

POP3简单认证:

http://www.faqs.org/rfcs/rfc5034.html


MIME,由5个RFC组成:

http://www.faqs.org/rfcs/rfc2045.html

http://www.faqs.org/rfcs/rfc2046.html

http://www.faqs.org/rfcs/rfc2047.html

http://www.faqs.org/rfcs/rfc4288.html

http://www.faqs.org/rfcs/rfc4289.html

http://www.faqs.org/rfcs/rfc2049.html


3
这些链接有点杂乱无章。RFC5321 取代了 2821,而 2821 又取代了 821;因此,821 和 2821 现在只具有历史意义。同样,RFC5322 取代了 2822,而 2822 又取代了 822。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接