当前位置:首页草根站长>SMTP邮件系统开发理论指导

SMTP邮件系统开发理论指导
发表于:2008年03月12日  分类:草根站长    标签:, , , , ,  

前期一直忙于NAS-Mail的开发,在开发的过程中,走了很多弯路,也积累了一些经验。

这篇文章将告诉你,要进行SMTP邮件系统的基本开发,需要准备哪些基本理论知识。如果你正在或即将进行这方面的工作,或者这篇简短的文章能对你有所帮助。

1. SMTP协议
必读协议:RFC821、RFC2554
a) RFC821是SMTP协议的主体,实现了SMTP通信的基本模型,并规定了基本的命令语法。
c) RFC2554是SMTP协议的补充协议,主要是在RFC821的基础上加入了安全认证机制,增加AUTH命令用于SMTP交互时的用户名密码身份验证。

2. MIME协议
严格来说,MIME是一个独立的协议族,已经不能算是SMTP的范畴了。但SMTP的开发回避不了对MIME的基本了解,因为MIME规定了我们要传送的邮件内容的基本消息格式。MIME协议的基本协议是RFC822,相关扩展协议甚多,如RFC1341、RFC 2045、RFC 2046、RFC 2047等。如果只是进行基本的邮件内容发送,阅读RFC822已经足够。

3. 编码规范
三种常见的邮件编码标准:
a) MIME标准。MIME定义了两种编码方式:Base64与QP编码。QP编码适用于非ASCII码的文字内容,如中文文件。而Base64编码通常用于传送二进制文件。关于base64的编码方法,可参见RFC3548协议。
b) UU编码(Unix-to-Unixencoding)
c) Binhex编码

备注:BASE64是目前用的最多的邮件编码格式,推荐使用。

说明:文本文件是否需要进行编码?我们的中文是8位代码,不是标准的ASCII码格式。如果邮件主要发往国内,由于国内大部分的邮件服务器都已能够处理GB内码的文件,因而不需要进行这种编解码的操作,可以直接传送。但如果要送中文邮件到国外,则通常需要经过这种转换才能传送,因为国外的多数邮件服务器是不支持中文内码的。

4. linux下可供参考的开源邮件系统
QMail
SendMail
Postfix

备注:SendMail为linux的默认邮件客户端,使用者众多,网络资料齐全,功能丰富,但代码量较为庞大,不利于参考阅读;Qmail相对sendmail来说,代码量更小,源代码易读性更强,推荐参考;Postfix不是很了解,不做评价。

SMTP邮件系统开发理论指导:目前有7 条留言

  1. ftuo 说:

    是不是Imail和Jmail都是开源的吧。

  2. keeptry 说:

    不太清楚,不过Imail和Jmail应该是windows下的吧?
    上面介绍的主要是linux下的开源邮件客户端。

  3. lincy 说:

    现在这个界面很漂亮!

  4. keeptry 说:

    做了个图片,看来效果是不一样啊~

  5. 是邻居啊!你也是邻居啊!大家都是邻居!
    因为这是百度社区的嘛,对不?哈哈~

  6. 哦,你在开发这个啊,好专业啊,哎,不懂这些啊…

    问好朋友!

给我留言

快捷键:Ctrl+Enter

留言没头像?这里教你设置头像!