[转文]linux搭建最简单的邮件服务器

Posted hoanfir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转文]linux搭建最简单的邮件服务器相关的知识,希望对你有一定的参考价值。

一、首先应该先了解用户和邮件服务器以及邮箱的使用


现在通常使用Email都很容易,这是因为有第三方服务商搭建邮件服务器,用户只需注册然后使用邮箱的收发功能。

但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA的角色。一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。一旦邮件到达邮箱,就原地不动了,等用户再通过MUA将其取走,就是用Outlook,Foxmail等软件收信的过程。

所以一封邮件的流程是:

发件人:MUA --发送--> MTA -> 若干个MTA... -> MTA -> MDA <--收取-- MUA:收件人

MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议;

而收邮件时,MUA到MDA之间使用的协议最常用的是POP3或IMAP。

 

需要注意的是,专业邮件服务商都有大量的机器来为用户服务,所以通常MTA(MUA到MTA或者MTA到MTA之间)和MDA(MUA到MDA之间)并不是同一台服务器,因此,在Outlook等软件中,我们需要分别填写SMTP发送服务器的地址和POP3接收服务器的地址。

 

感兴趣的可以自己尝试使用命令交互:smtp客户和服务器的命令交互(发)、pop3客户和服务器的命令交互(收)。注意使用的7位的ascii编码


 smtp

S:220 hamburger.edu

C:HELO crepes.fr

S:250 Hello crepes.fr, please to meet you

C:MAIL FROM:<[email protected]>

S:250 [email protected] ... Sender ok

C:RCPT TO:<[email protected]>

S:250 [email protected] ... Recipient ok

C:DATA

S:354 Enter mail, end with "." on a line by itself

C:Do you like ketchup?

S:How about pickles?

C:.

S:250 Message accepted for delivery

C:QUIT

S:221 hamburger.edu closing connection

pop3

S:+OK POP3 server ready

C:user bob

S:+OK

C:pass hungry

S:+OK user successfully logged on

C:list

S:1 498

S:2 912

S:.

C:retr 1

S:<message 1 contents>

S:.

C:dele 1

C:retr 2

S:<message 1 contents>

S:.

C:dele2

C:quit

S:+OK POP3 server signing off

 

二、为什么需要搭建自己的邮件服务器?


对于用户自己的网站来说,发送各种例如注册通知的邮件是很基本的一个需求,之前我一直用的是腾讯的企业邮箱,感觉挺方便的,直接可以绑定QQ邮箱接收邮件,网站配置一下SMTP也就可以发出邮件。但是在前几天由于有重要信息需要立即通知用户,所以选择了群发邮件的方式。在当我以为一切都是辣么完美的时候,陆续有用户过来问我什么情况,我都会跟他们说请查收邮件,但是有好几个人说并没有任何邮件,于是我试着再发一次,结果返回了错误提示。在网上找了下原因,后来看到这个:各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况,才知道是因为发信数量限制了

所以我只好另寻出路了,然后我在知乎上面找到了很多个提供邮件发送的服务商,大概有这些:SendGrid、MailChimp、Amazon SES、SendCloud、Mailgun等等,在看了不少人的建议之后,我选择了Mailgun。Mailgun注册和配置都挺简单,很快我就成功的发出了第一封邮件,怀着这封欣喜,我又发送了几封邮件,可是悲剧发生在第三封邮件,Mailgun后台有详细的发送记录,这个非常不错,在后台我看到我的邮件被拒收了,原因大概是该服务器IP的发信频率超过腾讯邮箱限制。所以这里就涉及到IP的问题,目前第三方的邮件发送服务普遍都是共享IP(后面还试过SendCloud、),而共享IP并不能确定是否已经达到接收方的数量限制,一旦达到了就无法再发送。这就是说还需要使用独立IP才能保证邮件有较高的到达率,接着就看了各家的独立IP价格,一般都是二十几甚至四十几美刀一个月,这对于我们这种小站长邮件需求不高的来说确实有点贵,买台VPS都不用这个价吧。

经过上面这些折腾,也算明白了如果要想顺畅的发出邮件的话,除了花钱,就只有自己搭建一个邮件服务器了。

 

三、如何搭建?linux系统下邮件服务器的搭建(Postfix+Dovecot)


待更

 

以上是关于[转文]linux搭建最简单的邮件服务器的主要内容,如果未能解决你的问题,请参考以下文章

sendmail 发信问题 linux 邮件服务器

linux邮件服务器搭建

搭建Apache James邮件服务

linux下使用自带mail发送邮件

企业Exchange邮件服务器搭建实例

linux系统搭建邮件服务,实现收发邮件功能。