首页 » 网络 » Email/电子邮件

电子邮件

与IT基础部分的电子邮件介绍不同,本章主要关注于如何搭建一个完整的电子邮件系统,以及电子邮件系统相关的协议。

构成邮箱系统的两大部分是“发送邮件”和“接收邮件”。邮件发送服务器本质上是一个SMTP Server,如sendmail、Postfix等实现。邮件接收服务器本质上是一个Imap/Pop3 Server,如Dovecot等实现。

协议端口说明
smtp25/tcpmail
smtps465/tcpSMTP over SSL (TLS)
imap143/tcpInterim Mail Access Proto v2
imaps993/tcpIMAP over SSL
pop3110/tcpPOP version 3
pop3s995/tcpPOP3 over SSL

邮件头部

RFC 1522指明了在报文首部发送非ASCII字符的方法,以此运行在发件人,收件人,主题中使用其他字符。

首部字段可以包含编码字(coded word),其格式为:

=?charset?encoding?encoded-text?=

charset是字符集。

encoding是一个单个字符,用来指定编码方法,支持2个值:

  • Q。Q编码(Quoted-printable)。
  • B。B编码,base64编码。

以下是从网易邮箱中某邮件头中抽取的信息,用utf-8字符集,B编码:

To: =?utf-8?B?YmVybGlu?= 
Subject: =?utf-8?B?TWljcm9zb2Z0IE9mZmljZSBPdXRsb29rIOa1i+ivlea2iOaBrw==?=

Subject中的B编码翻译出来为:Microsoft Office Outlook 测试消息。

以下是从Gmail邮箱中某邮件头抽取的信息,用utf-8字符集,Q编码:

Subject: =?utf-8?Q?OpenParty=203=E6=9C=88=E6=B4=BB=E5=8A=A8=E2=80\
          =9C=E6=98=A5=E6=9E=97=E2=80=9D=E5=8D=B3=E5=B0=86=E5=BC\
          =80=E5=A7=8B?=
From: =?utf-8?Q?OpenParty?= 

Subject中的Q编码翻译出来为:OpenParty 3月活动“春林”即将开始。

mbox/Maildir格式

mbox的特点是:所有消息都存放在一个文件里

Maildir的特点是:每个消息都存储在独立的文件中。文件有独特的命名规则,如包含时间戳、pid、inode等;每个文件夹都是一个目录(each folder is a directory)。

另有一种叫做mbx的格式,是对mbox的改进,用在UW/IAMP Server里。mbx有一个针对mbox文件的索引,改善读/写性能,但仍需flock,而flock(文件锁定)也是mbox的主要问题。

Maildir相对而言更依赖于文件系统,尤其是对目录的索引能力,对超大型Maildir而言,文件系统的读写性能尤为关键。邮件搜索速度,mbox通常而言会更快,因为是单个文件。

分享

0