目前最重要的网络应用是什么?毫无疑问,依然是电子邮件!
mail--只是一个操作界面,并不完成实质性的工作,它相当于上门服务的邮政快递员,和更复杂一些的mutt以及windows上的outlook(outlook有所不同,因为它集成了大部分的东西)是一样的;一般情况下,mail的配置文件中总会有一行:
set sendmail="/usr/bin/msmtp"
这就是说mail在接受了用户的输入之后,使用msmtp发送之,当然也可以使用别的,或者说快递员收到你要发的快递后,使用msmtp这个组织来为你服务。
fetchmail--它从POP邮箱中取回邮件,但是并不处理,只是取回而已,当然它也有默认操作,这正是unix哲学中“只做好一件事”的体现;
procmail--它负责处理fetchmail取回的邮件,转发,还是本地接收;一般情况下在fetchmail的配置文件中有下面这么一行信息:
mda "/usr/bin/procmail -d user"
这就是说当fetchmail将邮件取回后,procmail将邮件发送给本地用户user,这样邮件默认就到了/var/mail/user这个文件里面了。
msmtp--它将“邮递员”送上的信件发送到目的地邮局,类似sendmail。
总的过程是:
写信->mail->msmtp->smtp服务器->...>pop服务器(邮箱)->fetchmail->procmail->读信
mail--只是一个操作界面,并不完成实质性的工作,它相当于上门服务的邮政快递员,和更复杂一些的mutt以及windows上的outlook(outlook有所不同,因为它集成了大部分的东西)是一样的;一般情况下,mail的配置文件中总会有一行:
set sendmail="/usr/bin/msmtp"
这就是说mail在接受了用户的输入之后,使用msmtp发送之,当然也可以使用别的,或者说快递员收到你要发的快递后,使用msmtp这个组织来为你服务。
fetchmail--它从POP邮箱中取回邮件,但是并不处理,只是取回而已,当然它也有默认操作,这正是unix哲学中“只做好一件事”的体现;
procmail--它负责处理fetchmail取回的邮件,转发,还是本地接收;一般情况下在fetchmail的配置文件中有下面这么一行信息:
mda "/usr/bin/procmail -d user"
这就是说当fetchmail将邮件取回后,procmail将邮件发送给本地用户user,这样邮件默认就到了/var/mail/user这个文件里面了。
msmtp--它将“邮递员”送上的信件发送到目的地邮局,类似sendmail。
总的过程是:
写信->mail->msmtp->smtp服务器->...>pop服务器(邮箱)->fetchmail->procmail->读信
最终,我们发现,真正做事的是发送者和取回者,也就是msmtp和fetchmail,而mail/mutt/和procmail仅仅是一个直接和用户接触的代理。于是,我们知道,所谓的126.com和163.com等提供的WEB页面仅仅是一个集成了所有东西的操作界面,有人会遇到在使用这些邮箱的时输入正文的时候会被自动换行,这些并不是邮件服务器的问题,正是WEB页面导致的,可能是为了美观,或者别的什么,也可能是页面的作者很菜。实际上,后台的邮件服务器是不会触动你邮件的任何格式的,它们只是帮你将邮件送到目的地,如果收到邮件后发现格式变了,那一定是发送的时候格式就变了,可能隐藏了WEB页面的提交之中而不为你所见也不为你所控制,于是你大肆抱怨邮件服务器。就连微软的邮件服务器都不会篡改你信件的格式,别的服务器会篡改吗?不要怪服务器,要怪客户端。
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1271193