从邮件原理来看 postfix和docecot
好早好早以前计算机网络老师就教了说,邮件嘛,就三个协议smtp,imap,pop3。
smtp 用来发邮件,imap,pop3用来收邮件。噢?是么。难道没有发现这句话有非常多的漏洞,根本就不能说清楚这个邮件发送的整个过程。发邮件? 往哪里发? 收邮件? 往哪里收。当真的编程的时候就无比蛋疼了。
首先总结一句话。完成邮件发送这个整个过程,不管是你发给别人,还是别人发给你,只是通过了smtp协议。换一句话说就是只用postfix,你就可以搭一个邮件服务器。你可以通过它给你的qq邮箱发送,更可以通过qq邮件发送给他。
我们还是先跟随一个典型的发送邮件的到接受邮件的过程,看一看smtp ,imap ,pop3以及postfix, dovecot在这个过程中到底扮演了什么角色。
从最开始,小明用邮件代理(MUA mail user-agent ),可以是你foxmail,outlook,或者是你的web-qq-mail,或者是Thunderbird 。 无论是哪种MUA 邮件创建之后被送到了用户的邮件传输代理服务器(MTA mail transform-agent) ,这个就正是postfix——传输的协议使用smtp协议。然后MTA 也就是postFix 检测你的用户合法性,以及一系列检测(包括你发邮件的限制数量,是否含有什么流氓信息之类的)。等postfix检测完了之后,它就去找DNS找寻 你的目标。例如:你发送给 11111@qq.com , 此时他就去找DNS问 qq.com的ip是多少(详细过程更为复杂一些,例如, qq.com的服务器和 她的邮件服务器很有可能不在一个网段内部,也就是说qq.com那台并不是mail服务器,但是我们的mail服务器又很想用qq.com的域名,怎么搞,总不可能要求别个把mail服务器丢到web服务器的网段嘛。这个时候就可以设置qq.com的mx记录,并且设置到目标主机,详细过程不再赘述)。然后将这封邮件投递给qq.com mx 记录指向的主机的25(默认)端口——此时也是使用smtp协议。当然,考虑到不同的网络配置,可能邮件在传输的过程中很有可能被转移到了另外的MTA,但是最终会有一个MTA接管这封邮件,并且负责投递。然后MTA将邮件转移给某个MDA(邮件投递代理) ——她主要的作用是将邮件保存到本地磁盘中,有些MTA也包揽了这个工作——如postfix就是包含MTA,MDA。
Ok这个时候,邮件发送的整个过程已经结束了(服务器层面上的),也就是说现在你可以给qq.com发,qq.com也可以给你发了,编程实现的投递过程也就到此结束。
你可以ssh到你的邮件服务器,去看下,/hom/mail/...你的目录下面你的邮件了,(显然各个邮件系统的存储方式不尽相同,这只是举个例子)
那么这个时候你nmap一下你的邮件服务器,就会发现多了一个25端口,你可以通过这个端口指示它向mail.qq.com投递,同理qq.com 也可以通过他给你投递一封邮件。
这个时候我们再来看一看Dovecot尼玛在这个过程中到底起到了什么狗屎作用,我好不容易配了一个Postfix,尽然还要装个这货。所以再重复一次,Dovecot并不负责邮件的投递或者存储,这两方面出现了问题,应该考虑你的MTA或者MDA是否正确。
Dovecot的主要配置包括,邮件存储位置,邮件存储类型,用户列表和密码列表,她支持多种用户密码格式。你用该选择一种邮件服务全局都可以接受的用户名和密码格式。以便你的postfix和dovecot沟通咯。
那么有了这个狗屎货之后有什么用呢,你再nmap 一下你的端口,发现多了110,143端口,她们分别是pop和imap端口,这个时候你就可以通过你的outlook等等MUA来查收你的邮件咯,当然如果你设置smtp为本机的话,也就可以发了。大概这个时候一个非常非常简单的邮件服务器就搭起来咯。
所以总的来说dovecot没起到任何作用,pop,imap也没有起到作用。开玩笑哈~
当然如果想要通过这个邮件服务器去给你的用户发送邮件,那显然是不靠谱的,她们妥妥地会出现在你用户的垃圾邮箱,甚至直接就被别人的MTA拦截住了。
从邮件原理来看 postfix和docecot的更多相关文章
- 工程师技术(二):postfix基础邮件服务、postfix空客户端邮件服务、搭建mariadb数据库系统、配置一个数据库、使用数据库查询
一.postfix基础邮件服务 目标: 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 1> 监听本机的所有接口 2> 将邮件域和邮件服务主机名都改为 ...
- Linux中Postfix邮件原理介绍(一)
邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 ...
- CentOS7下搭建邮件服务器(dovecot + postfix + SSL)
CentOS 花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + ...
- 邮件报警(postfix)
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在 ...
- 基础邮件原理(MUA,MTA,MDA)
电子邮件基本概念: MUA(Mail User Agent)接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信: MTA(Mail Transfer Agent) 通过SMTP协议发送 ...
- 最新ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)
最近做了一个应用,需要用邮件发通知,但是免费的邮箱每天发信数量是有限制的,所以呢就想着搭建一个自己的邮件服务器,能够实现邮件的发送和接收即可,其中大概花了一个星期找资料,测试,终于成功了,写个教程 ...
- 搭建邮件服务器 使用Postfix与Dovecot
首先需要从yum中下载安装三个服务:bind-chroot postfix dovecot 配置文件依次: /etc/named.conf 下载安装完后要开启的服务:named ...
- 从 React 原理来看 ahooks 是怎么解决 React 的闭包问题的?
本文是深入浅出 ahooks 源码系列文章的第三篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 本文来探索一下 ahooks 是怎么解决 React 的闭包问题的 ...
- 邮件服务器启动postfix时的问题:master 已死,但 pid 文件仍存
[root@linux115 ~]# service postfix restart // 重启postfix关闭 postfix:[失败] 启动 postfix: [确定][root@linux ...
随机推荐
- 在 GitHub 公开仓库中隐藏自己的私人邮箱地址
GitHub 重点在开方源代码,其本身还是非常注重隐私的.这一点与面向企业的 GitLab 很不一样. 不过,你依然可能在 GitHub 上泄露隐私信息,例如企业内部所用的电子邮箱. GitHub 对 ...
- ubuntu下Python的安装和使用
版权声明 更新:2017-04-13-上午博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Python的开发环境. ...
- MySQL排序_20160926
在工作中对数据进行排序也是最常用的,比如根据用户的下单金额降序 或者对销售业绩进行降序排序 在考核员工KPI时候也经常用到 一.order by 函数 order by 函数默认根据后面字段升序,使 ...
- 接口测试框架——第二篇-python读取excel文件内容
今天完善excel_module.py文件,上代码: # coding: utf-8 import xlrd class ReadExcel(): def __init__(self, file_na ...
- Asp.net Global 定时执行
在复杂的业务应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件,定期处理用户状态信息,支付系统中定期同步异常账单等等,我们称之 ...
- c#开发的程序安装时动态指定windows服务名称
转自:http://www.jb51.net/article/30549.htm 前段时间由于项目的需求,要在Windows里把同样的组件制作成多个不同名称的服务,这些服务完成类似的功能,仅需要修改业 ...
- Jitsi 开源视频会议远程桌面共享&&文档共享工具
1. 特点 主要功能特点: 支持网络视频会议,使用SFU模式实现视频路由器功能. 支持SIP帐号注册电话呼叫. 支持安卓苹果终端. 支持文档共享功能,即时消息功能. 支持中文界面. 支持会议邀请,密码 ...
- 【转】如何将FLAC格式转为MP3格式
原文网址:http://jingyan.baidu.com/ae/3aed632e65708470108091ca.html FLAC全称为无损音频压缩编码,FLAC格式又称无损格式 不会破坏原有的音 ...
- 【转】linux中shell变量$#,$@,$0,$1,$2的含义解释
原文网址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,$@,$0,$1,$2的含义解释: ...
- idea创建文件类型失败(xml之类的失效
https://blog.csdn.net/sutongxuevip/article/details/72832754