一、Postfix介绍
Postfix是一款非常优异的邮件服务器,它可以说是用来替代Sendmail的。Postfix主要是用在邮件服务器的发信上,也就是采用SMTP来进行发邮件,而收信则一般采用Dovecot来实现。
1. postfix是免费的
postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快
postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
3. 兼容性好
postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
4. 更健壮
postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活
postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6. 安全性
postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。
二、Postfix的安装和配置
Postfix的官方网站是:http://www.postfix.org/
1、查看postfix是否安装
rpm -qa | grep postfix
2.安装postfix
yum install postfix
3.卸载sendmail
rpm -e sendmail
yum -y remove sendmail
4.配置postfix
新建配置文件
postconf -n > /etc/postfix/main2.cf
备份配置文件
mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
更改配置文件名字
mv /etc/postfix/main2.cf /etc/postfix/main.cf
编辑配置文件
vi /etc/postfix/main.cf
增加如下内容:
# hostname
mynetworks = 127.0.0.1
myhostname = mail.extmail.org
mydestination = $mynetworks $myhostname
# banner
mail_name = Postfix - by extmail.org
smtpd_banner = $myhostname ESMTP $mail_name
# response immediately
smtpd_error_sleep_time = 0s
# Message and return code control
message_size_limit = 5242880
mailbox_size_limit = 5242880
show_user_unknown_table_name = no
# Queue lifetime control
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
完整的配置文件
[root@localhost ~]# cat /etc/postfix/main.cf
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = localhost
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
# hostname
mynetworks = 127.0.0.1
myhostname = mail.extmail.org
mydestination = $mynetworks $myhostname
# banner
mail_name = Postfix - by extmail.org
smtpd_banner = $myhostname ESMTP $mail_name
# response immediately
smtpd_error_sleep_time = 0s
# Message and return code control
message_size_limit = 5242880
mailbox_size_limit = 5242880
show_user_unknown_table_name = no
# Queue lifetime control
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
5.启动postfix服务:
service postfix restart
6.查看端口25是否开启
netstat -lanpt |grep 25
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3315/master
telnet localhost 25
7.发送一封主题是test的测试邮件
[root@localhost ~]# mail -s test [email protected] 回车之后按ctrl+d,再回车
Cc:
Null message body; hope that's ok
8.查看邮件是否发送成功
[root@localhost ~]# tail -f /var/log/maillog
Mar 5 03:58:09 localhost postfix/smtp[6650]: ED16C1BDD5D: to=<[email protected]>, relay=58.32.186.231[58.32.186.231]:25, delay=0.3, delays=0.02/0/0.18/0.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 0245B33032F)