[转文]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)



待更

原文地址:https://www.cnblogs.com/hoanfir/p/9074608.html

时间: 2024-11-09 04:58:33

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

持续集成(二)工具搭建篇—内网邮件服务器搭建

在我们的持续构建中,项目构建中出现错误提醒,或者开发人员之间的沟通交流,进度汇报的事务,都是离不开一个通信工具,那就是邮件.在我们的项目开发中如果使用第三方的邮件平台,这肯定不是最好的选择,因为第三方的邮件需要外网的支持,但是外网又不是特别的可靠,假如外网链接出现了问题,这样就会不必要的延误我们的工期.再或者很多项目都是保密项目,在开发中只能用内网.但是不用邮件吧又不行.为了解决这个头疼的问题,我们的内网邮件服务器工具就出现了,只要用它安装在我们的服务器上,配置好账户,配置好客户端,在内网里就可

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

Linux 小知识翻译 - 「邮件服务器」

这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要指定「发信服务器」和「收信服务器」. 这2个服务器是同一个的情况虽然也不少,但是一般指定「发信服务器」或者「收信服务器」的时候,都是指「发送邮件的服务端软件」和「接收邮件的服务端软件」. 发送邮件时,发送邮件的路线简单表示如下: 即,发邮件的客户端使用SMTP(Simple Mail Transfe

搭建一个简单的DHCP服务器

实验环境: 系统:RHEL6.4 一.给DHCP服务器配置固定IP [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=....... TYPE=Ethernet UUID=...... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.50.253 NETMASK=255.255.255.0 [[em

在阿里云上搭建一个简单的node服务器

一.阿里云服务器以及node环境的搭建 服务器可以去阿里云官网购买一个ECS云服务器,价格还是有点小贵的,如果想使用免费的阿里云服务器,那么阿里云官网每天也是有抢免费的服务器的,每天上午十点,新人能抢到为期半年的服务器. 然后有了服务器以后,首先搭建一个node的运行环境,保证node 能正常使用,这个不是本文的内容就不多加赘述了. 如果没有搭建的小伙伴可以参考这里. 二.远程服务器上的代码管理 在阿里云服务器上可以安装一个 git 版本控制器,将自己的代码放置在自己的 GitHub 上,然后在

Linux下最简单的FTP服务器搭建方法

之前一直在Windows下做开发,当需要向开发板下载firmware时,一般都是开一个TFTPD32,设置好firmware所在的文件夹,一切就OK 了 现在换到Linux下,见识了服务器操作系统在服务配置领域的卓越 前后安装了wu-ftpd,vsftpd,pure-ftpd,tftpd(以及衍生的tftpd-hpa),没一个能让我的板子成功下到firmware的,还浪费了我大量的时间了解各自的配置文件格式.inetd/xinetd配置.syslog配置等等 最后,我想起了那句话"life is

16、简单自制邮件服务器

1.协议服务: SMTP       tcp      25 端口      邮件存储和递送     POP3       tcp      110 端口     用户读.写邮件 2.服务器:  (SMTP   25 端口)     sendmail     成熟,易配置     postfix       AIX系统开发 (IBM)  所以Linux下  不易配置     gmail          号称 处理速度快,能力强 3.客户端:   (POP3  110 端口)     文本:  

Linux搭建基于BIND的DNS服务器

实验目标:通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤:1. 安装BIND2. 防火墙放通DNS服务3. 编辑BIND的主配置文件4. 编辑BIND的域管理文件5. 编辑相应域的记录文件6. 开启或重启BIND服务7. 在客户端测试 参考命令: 1. 安装BINDBIND是Linux平台最常用的DNS软件[[email protected] Desktop]# yum install bind -y 2. 防火墙放通DNS服务 3. 编辑BIND主配置文件[[email prote

nodejs基础 用http模块 搭建一个简单的web服务器 响应纯文本

首先说一下,我们平时在浏览器上访问网页,所看到的内容,其实是web服务器传过来的,比如我们访问www.baidu.com.当我们在浏览器地址栏输入之后,浏览器会发送请求到web服务器,然后web服务器根据请求所携带的信息,返回内容. 那么,nodejs中的http模块,就是用来搭建web服务器用的. 下面来简单的搭建一个服务器: var http = require("http"); //request:是请求参数,携带这请求所带来的信息.response:是响应参数,携带者将要返回到