zoukankan      html  css  js  c++  java
  • [转文]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:<alice@crepes.fr>

    S:250 alice@crepes.fr ... Sender ok

    C:RCPT TO:<bob@hamburger.edu>

    S:250 bob@hamburger.edu ... 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)


    待更

  • 相关阅读:
    一些有用的DNN方法
    将VB.Net反编译时StringType.StrCmp用C#中的函数string.Compare替换
    接一个DNN安装时的未知错误,终于找到了原因
    这是用performancing for firefox编写的blog
    这是用word2007发表的blog
    一个DNN安装时的未知错误
    后端——框架——切面框架——aop——Pointcut表达式
    Metroid Prime Chs 20101004
    第一财经周刊:书店的黄昏
    这年头连萝卜都靠不住了
  • 原文地址:https://www.cnblogs.com/hoanfir/p/9074608.html
Copyright © 2011-2022 走看看