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

标签 language-agnostic email network-programming smtp

我学习创建电子邮件服务器的良好起点是什么?

基本上,我想做的是让服务器(例如 foo.com)为我接收邮件,因此如果我向 (blah@foo.com) 发送电子邮件,它会将电子邮件的内容转储到/mail/blah/主题,然后将其发送到我的真实电子邮件帐户。

我希望将此作为编程练习,因此指向 RFC 等的链接会很好。重新发明轮子是了解轮子的好方法。

编辑:随意适本地重新标记。

最佳答案

编辑 :我提供了一些标题并按主题划分了 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

    关于language-agnostic - 编写一个简单的电子邮件服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765738/

    相关文章:

    c# - 使用 System.Net.Mail lib 发送的电子邮件显示中文字母

    sql - 在多少种语言中,Null 不等于任何东西,甚至不等于 Null?

    user-interface - 如何设计好的 "progress panel"

    algorithm - 修改后的二叉树的有序遍历

    algorithm - sqrt 和 div 指令以相同的速度运行

    Python简单服务器和客户端脚本(Socket编程)

    用于在 Outlook 邮件中搜索的 Excel VBA

    html - Outlook 软件去除了电子邮件中的内联 CSS

    c - scapy 在已建立的连接上发送 tcp 数据包

    linux - 识别c中的虚拟网络接口(interface)