邮件服务系列之编译安装Postfix
MTA:邮件传输代理 SMTP服务器
sendmail,UUCP
单体结构,SUID,配置文件语法(m4编写)
qmail
postfix:模块化设计,安全,跟sendmail兼容,效率高
exim:MTA
Exchange(Windows,异步消息协作平台)
SASL:v2 认证框架
cyrus-sasl
courier-authlib
MDA:邮件投递代理
procmail
maildrop 能够实现过滤垃圾
MRA:邮件检索代理(pop3,imap4)
cyrus-imap
dovecot
MUA:邮件用户代理
Outlook express,Outlook
Foxmail
Thunderbird
Evolution
mutt(文本界面)
Webmail:
Openwebmail(perl)
squirrelmail(php)
Extmail(Extman)
EMOS,CentOS
Postfix+SASL(courier-authlib) + MySQL 发邮件服务器
Dovecot+MySQL 收邮件
Extmail+Extman+httpd webmail
postfix:rpm
卸载sendmail
netstat -tnlp//查看已经启动的网络服务
service sendmail stop
chkconfig sendmail off//停止sendmail
yum list all | grep sendmail
rpm -e sendmail --nodeps//删除
安装postfix
实现虚拟用户,基于mysql认证
先安装mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz//下载 # tar xf mysql-5.6.22.tar.gz -C /usr/local # cd /usr/local/ # ln -sv mysql-5.6.22/ mysql//创建链接 # cd mysql
groupadd -r -g 306 mysql
useradd -g 306 -r -u 306 mysql
chown -R mysql:mysql /usr/local/mysql/*
www.postfix.org
tar zvxf postfix-3.1.4.tar.gz
cd postfix-3.1.4
less INSTALL
一、安装前的准备工作:
安装前说明:邮件服务依赖于DNS服务,请事先确信您的DNS服务已经为邮件应用配置完成。
1、安装所需的rpm包,这包括以下这些:
httpd, mysql, mysql-server, mysql-devel, openssl-devel, dovecot, perl-DBD-MySQL, tcl, tcl-devel, libart_lgpl, libart_lgpl-devel, libtool-ltdl, libtool-ltdl-devel, expect
2、关闭sendmail,并将它的随系统自动启动功能关闭:
# service sendmail stop
# chkconfig sendmail off
3、安装以下开发所用到的rpm包组:
Development Libraries
Development Tools
方法:
# yum groupinstall "packge_group_name"
二、启动依赖的服务:
1、启动mysql数据库,并给mysql的root用户设置密码:
# service mysqld start
# chkconfig mysqld on
# mysqladmin -uroot password 'your_password'
2、启动saslauthd服务,并将其加入到自动启动队列:
# service saslauthd start
# chkconfig saslauthd on
三、安装配置postfix
# 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 zxvf postfix-2.9.3.tar.gz
# cd postfix-2.9.3
# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'
# make
# make install
# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'
按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值)
install_root: [/] /
tempdir: [/root/postfix-2.9.3] /tmp/postfix
config_directory: [/etc/postfix] /etc/postfix
daemon_directory: [/usr/libexec/postfix]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/bin/mailq]
mail_owner: [postfix]
setgid_group: [postdrop]
html_directory: [no]/var/www/html/postfix
manpages: [/usr/local/man]
readme_directory: [no]
启动:
postfix start
netstat -tnlp
tail /var/log/maillog
生成别名二进制文件:
# newaliases
postfix的配置文件:
postfix模块化:
master: /etc/postfix/master.cf
mail: /etc/postfix/main.cf
参数 = 值: 参数必须写在行的绝对行首,以空白开头的行被认为是上一行的延续
postconf: 配置postfix
-d: 显示默认的配置
-n: 修改了的配置
-m: 显示支持的查找表类型
-A: 显示支持的SASL客户端插件类型
-e PARMATER=VALUE: 更改某参数配置信息,并保存至main.cf文件中
smtp状态码:
1xx: 纯信息
2xx: 正确
3xx: 上一步操作尚未完成,需要继续补充
4xx: 暂时性错误
5xx: 永久性错误
smtp协议命令:
helo (smtp协议)
ehlo (esmtp协议)
mail from:
rcpt to:
alias: 邮件别名
abc@magedu.com: postmaster@magedu.com
/etc/aliases –> hash –> /etc/aliases.db
# newaliases
tail /var/log/maillog
newaliases
ls /etc | grep alias
postfix stop
postfix start
tail /var/log/maillog
tail /var/log/maillog
postfix默认把本机的IP地址所在的网段识别为本地网络,并且为之中继邮件;