[后端]邮件服务器搭建之postfix

动机

st0rm23我想自己搭建一个邮件服务器,干啥勒,可以有自己的一坨邮箱,就可以用来注册一些奇怪的账号了2333。开玩笑啦,不过有个自己的邮箱还是挺不错的。

原理

邮件投递过程基本上是由三个角色组成的,分别是MUA(mail user agent)邮件用户代理, MTA(mail transfer agent)邮件传输代理, MDA(mail delivery agent)邮件投递代理。其实蛮简单的,我们通过一个例子来看这个三者如何协同工作的。

这个例子的背景是小明要用outlook邮箱给小红的foxmail邮箱发一封邮件,信件内容是这样的。

from xiaoming@outlook.com
to xiaohong@foxmail.com
哈喽小红,我可以去你家帮忙修电脑吗?亲亲

首先,小明在自己电脑上用outlook软件写好了一封邮件,这里outlook软件就是MUA,也就是用户接触到的那个客户端。其实平常你看到的QQ邮箱或者新浪邮箱那个界面也是MUA,区别只是outlook是电脑上的软件,QQ邮箱只是web应用而已。

然后勒,小明点了发送,这样邮件就从小明的电脑就会根据小明的邮箱地址xiaoming@outlook.com把这个邮件上传到outlook.com所解析到的服务器A上,这个服务器A勒就是MTA,这个服务器只是负责传输的,然后这个服务器又会继续进行传输,再根据xiaohong@foxmail.com丢到foxmail.com所对应的服务器B。当然有可能A和B之间继续经过了很多的MTA。这并不影响,总之就是最终会被传输到目的地。

最终的目的地就是MDA,这个MDA服务器负责存储下这封邮件的内容。然后小红的客户端当连接MDA的时候,一旦发现了自己有一封新邮件,就会去MDA上获取这个邮件。那么就展现到小红的面前了,晚上就可以愉快地和小明修电脑了。

大体的流程就是MUA -> MTA -> ... MTA -> MTA -> MDA <- MUA.
这里的传输过程因为情况的不同又分为不同的协议
MUA->MTA使用的是SMTP
MTA->MTA使用的是SMTP
MDU<-MUA使用的是POP3或者IMAP

介绍

MUA暂时先用linux命令行下的mail指令吧
MTA我们用POSTFIX(linux默认好像带有sendMail)
MDA就用linux自己的就好了,用户组会把邮件自己存下来的,mail指令可以取的到

准备工作

首先我们要先做好地址的解析工作,就以上述的例子而言,foxmail.com怎么找到对方的邮件服务器勒。大家可能会说foxmail.com这个域名对应的地址不就是么。这里大家可能搞混乱,通常说域名对应的地址是web服务器的地址,不一定就是邮件服务器的地址。DNS解析里面有A记录和MX记录之分,A(Address)记录就是普通我们说的域名翻译的地址。邮件投递的地址有稍微的不同,会去让查找foxmail.com这个域名下有没有MX记录,有的话就去查找MX记录对应的主机。通常MX记录的目标主机填的是一个子域名,而不是真正的IP地址。我们以为@example.com这个邮箱后缀的解析为例。

A记录新建一条如下
域名:mail.example.com IP地址:123.123.123.123
MX记录新建一条入戏
域名:example.com 目标主机:mail.exmaple.com
这样,当我们@example.com的时候,就会自动对应到mail.example.com的域名下再翻译成123.123.123.123了。

过程

1、先停用Sendmail

$ /etc/init.d/sendmail stop #停止sendmail服务
$ chkconfig sendmail off #从启动组删除
$ apt-get install postfix #安装postfix

2、修改配置
配置文件在/etc/postfix/main.cf下
打开后修改即可

myhostname = mail.example.com #主机名指向真正域名
mydomain = example.com #mydomain参数指向根域
myorigin = $mydomain #myorigin指向mydomain
mydestination = $mydomain #mydestination指向mydomain
inet_interfaces = all #监听网卡的所有IP,这样才可以收到外部邮件
mynetworks_style = host #只信任本机
relay_domains = $mydomain #配置哪些地址的邮件能够被Postfix转发,当然是mydomain的才能转发,否则其他人都可以用这台邮件服务器转发垃圾邮件

测试使用

这样基本就大功告成了。我们可以简单尝试一下,用你其他邮箱向root@example.com发一封邮件。这里root可以改成你服务器上的某个特定用户。如果没有收到退信提示说明发送成功了。

到root用户下,输入mail指令,就可以列出root用户收件箱的内容。

mail

郝然看到第一封邮件就是你刚才发的,是不是很开森。

当然你也可以用mail指令对外发邮件.

echo "hello, boys" | mail -s "hello" root@example.com

日常维护

日志 : /var/log/maillog
mailq : 列出当前在postfix发送队列中的所有邮件
postsuper -d ALL : 删除当前等待发送队列的所有邮件,包括发送失败的退信

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 概念解释 SPF:Sender Policy Framework,直译过来就是发件人保证框架.出现的主要原因是SM...
    YusenMeng阅读 79,377评论 8 58
  • 假设我们自己的电子邮件地址是me@163.com,对方的电子邮件地址是friend@sina.com(注意地址都是...
    牛崽儿酷阅读 357评论 0 1
  • 从古代的八百里加急,到现在的电子邮件,邮件的发展见证了上下五千年的发展史,这些当然是废话,只是要说说邮件的重要性。...
    大牧莫邪阅读 1,523评论 0 13
  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。几乎所有的编程语言都支持发送...
    _士心_阅读 520评论 0 1
  • 背景 在上一篇讲到了安装完postfix之后,我们再服务器上有有了收发邮件的能力。 然而因为我们只是做了一点微小的...
    st0rm23阅读 2,297评论 0 1