设为首页 收藏本站
查看: 1179|回复: 0

[经验分享] Linux 邮件服务器原理介绍,编译安装Postfix实现本地的邮件服务。

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-17 09:29:25 | 显示全部楼层 |阅读模式
一、邮件服务器基本的工作原理
wKioL1XO8QjQF93BAAD9y0TbQfY844.jpg


用户(MUA)通过SMTP协议将邮件发送到服务器(MTA),服务器分解发现如果是本地的邮件传输则通过lmtp来传送,如果是远程邮件将调用本地的客户端使用SMTP协议向对方服务器传送。


当对方的服务器接收到邮件之后,发现如果不是本机所负责的域,则将邮件交给本机的邮件客户端,根据邮件目标域请求DNS解析,将邮件发送到目标服务器,或者丢至下一跳此过程称为邮件中继,如果发现是本机负责区域内的用户,则SMTPD将邮件转交给MDA,由MDA把邮件传递到用户的邮筒。


用户通过MUA查看邮件的时候,会将邮件从邮筒拉到用户家目录,保存为mbox的文件。


邮件中继:
SMTPD要支持邮件路由功能,需要打开Open Relay—开放式中继。
SMTPD是根据收件人判断邮件是否需要中继,而且只给指定的客户端中继。
二、邮件服务器与DNS之间的关系
wKioL1XO8jTxEwzpAAKUFiQ4650036.jpg

①当发件方需要发送邮件给对方邮件服务器,需要向DNS请求查询对方邮件服务器的MX记录。
②DNS通过查询MX表信息。
③将查询到的MX信息返回给发送方。
④发送方根据优先级,将邮件投递给对方优先级高的邮件服务器(mail1)。
⑤如果主邮件服务器过于繁忙,或者不在线的时候,会将邮件投递给辅的邮件交换器(mail2)上。
⑥待主邮件服交换器空闲下来后,mail2会将代替接收下来的邮件再转给主邮件交换器(mail1)。
注:当DNS上存在多个MX记录的主机这时就是根据DNS的邮件级判断了。DNS上定义的值越小,其优先级越高。 辅助交换器接受到邮件并不能保存邮件。而是这个辅助交换器会等到主邮件交换器空闲的时候把代替它接受下来的邮件在转给主邮件交换器。所以任何邮件处理都是主邮件交换器处理的。所以我们实际情况下,如果有2台服务器做邮件交换器,性能比较高的应该为主的。



三、邮件服务器的各程序组件

MTA(Mail Transfer Agent)接收邮件的服务器端,负责邮件的传输;
sendmail
qmail
postfix
exim
Exchange(windows)
MUA(Mail User Agent) 邮件客户端,提供用户编写查看邮件,向外发送邮件;
Outlook Express , Outlook
Foxmail
Thunderbird
Evolution
mutt
MDA(Mail Delivery Agent) 将收下来的邮件投递到对应用户邮筒中的程序
procmail
maildrop
MRA (Mail Retrieval Agent)通过POP3协议从邮筒中帮用户检索对应邮件
pop3,imap4
cyrus-imap
dovecot
Web Mail  实现网页的形式收发邮件,需要有web服务器的支持;
openwebmail
squirrelmail
Extmail

四、Postfix简介

        Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。

        postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。
        大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程。该进程也是一个后台程序。
        这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。

特点:
1、postfix是免费的;

2、性能好,大约比sendmail快三倍,一台运行postfix的台式pc每天可收发上百万邮件;
3、兼容sendmail
4、健壮稳定,postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加;
5、灵活性好,postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6、安全性,postfix具有多层防御结构,可以有效地抵御恶意入侵者,可以运行在较低的权限之下;


五、编译安装PostFix

1、关闭服务器已有的邮件服务器,将其卸载。
2、安装MySQL数据库,并给root用户设置好密码。
3、编译安装postfix
安装依赖包
yum install cyrus-sasl-devel -y
yum install cyrus-sasl-plain -y
创建用户和组,postfix用于启动postfix服务器,postdrop(用于邮件投递服务);
groupadd -g 2525 postfix
useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
groupadd -g 2526 postdrop
useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop


解压源码包
tar xf postfix-2.11.6.tar.gz
cd postfix-2.11.6
编译参数
make makefiles 'CCARGS=-DHAS_MYSQL -I /alidata/server/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I /usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L /alidata/server/mysql/lib -lmysqlclient -lz -lm -L/usr/lib64/sasl2 -lsasl2 -lssl -lcrypto'
make
make install
参数说明:
CCARGS                   指定C编译参数,指定链接的头文件路径。
-DHAS_MYSQL        启用mysql连接功能,指定头文件路径

-DUSE_SASL_AUTH 启用SASL认证
-DUSE_CYRUS_SASL -I  指定SASL头文件路径
-DUSE_TLS                     启用加密协议
AUXLIBS                         辅助的库文件路径

-lz                    表示压缩库文件
-lm                   模块文件
-lsasl2 -lssl -lcrypto 表示使用这些库文件



启动postfix服务器
postfix start
会监听在tcp的25号端口,进程名为master。

postfix配置文件:
        master:/etc/postfix/master.cf
        mail:/etc/postfix/main.cf
        参数必须写在行的行首,以空白开头的行被认为是上一行的延续。


postconf 配置工具:
    -d:显示默认配置
    -n:显示修改过的配置
    -m:显示支持的查找表类型
    -A:显示支持的SASL客户端插件类型
    -e:Parameter=Value 更改参数配置信息,并保存至main.cf文件中;



smtp状态码:
1xx:纯信息
2xx:正确
3xx:上一步操作尚未完成,需要继续补充。
4xx:暂时性错误
5xx:永久性错误


当出现postfix无法读取邮件别名的时候使用命令/usr/bin/newaliases,将别名文件aliases进行hash散列;
可生成aliases.db文件;


演示telnet连接postfix  smtp指令发邮件:
wKiom1XO_A_iDnCbAAIg9b-N2JM465.jpg
查看日志 /var/log/maillog
wKioL1XO_jPDepTUAAKvZgf3-fE081.jpg
切换到本机tuchao用户查看邮件
wKiom1XO_D3QYX5KAAHIPUNHo-o031.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-100068-1-1.html 上篇帖子: 【Ex2013】【虚拟目录】owa虚拟目录创建失败 下篇帖子: 【Ex2013】【Outlook】代表发送邮件存放在个人邮箱发件箱内 邮件服务器 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表