首页 > centos安装postfix+dovecot

centos安装postfix+dovecot

2013-03-12   hisenKing

基本上每个web项目都会涉及到邮件,最常见的应该算注册,填写注册邮箱发送激活邮件。目前接触到的项目,都使用到了邮件的功能,个人觉得对这块东西不了解,也可以说对自己经手的项目没有充分的了解,特别是在邮件预警这块,做得好与做得差个人能力很容易放大看出(个人观点哈哈)。没权限查看正式环境上的邮件系统,因此在自己在centos下搭建postfix进行模拟操作。

以下是安装步骤: 首先查看是否已经安装sendmail,如果已经安装的话需要卸载。

pstree | grep sendmail

输出:|-2*[sendmail],说明已经存在,需要关闭,如无输出则直接跳到安装postfix这步 停止sendmail服务

service sendmail stop

设置开机默认不启动

chkconfig sendmail off
chkconfig --list sendmail

输出:

sendmail   0:off    1:off    2:off   3:off    4:off    5:off    6:off

则表示默认不启动

安装postfix

yum -y install postfix

输出一大串安装信息

配置postfix,postfix的配置文件是/etc/postfix/main.cf

myhostname = www.centos.vbird          <==约在第  77 行
myorigin = $myhostname                 <==约在第  99 行
inet_interfaces = all                  <==约在第 114 行,117 行要批注掉
inet_protocols = ipv4                  <==约在第 120 行
mydestination = $myhostname, localhost.$mydomain, localhost<==约在第 165,166 行
mynetworks = 127.0.0.0/8, 192.168.1.0/24 <==约在269行
relay_domains = $mydestination         <==约在第 299 行

上面的mynetworks ,需要查看自己所在局域网的ip,因为我是在虚拟机里面配置的,ip所在号段为192.168.1.102子网掩码为255.255.255.0,所以设置成了192.168.1.0/24

配置后使用postconf查看与默认不同的地方如下:

[root@localhost ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
mydomain = laoniangke.com
myhostname = mail.laoniangke.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
relay_domains = $mydestination
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

重启postfix

service postfix restart

通过发送邮件的端口,确认postfix服务是否启动

netstat -tunlp | grep :25

选择mta服务器的优先级

alternative --config mta

邮件优先级

其中符号“+”代表优先选择,这边只要输入postfix所在的号码即可,如上图则是:2

配置开机启动 chkconfig postfix on

查看是否配置成功 chkconfig --list dovecot sendmail 0:off  1:off  2:on  3:on  4:on  5:on  6:off

安装dovecot

yum -y install dovecot

配置dovecot。配置dovecot非常的简单,只需要去除dovecot支持的协议前面的#即可 找到#protocols = imap imaps pop3 pop3s,修改成 protocols = imap imaps pop3 pop3s

启动dovecot

service dovecot restart

通过端口号查看是否已经启动

netstat -tunlp |grep :110

tcp 0 0 :::110 :::* LISTEN 3091/dovecot 配置开机启动

chkconfig dovecot on

查看是否配置成功

chkconfig --list dovecot

sendmail   0:off    1:off    2:on    3:on    4:on    5:on    6:off 到此postfix+dovecot邮件收发服务器就配置好了。

邮件别名 发送user1的邮件同时发送给user2 在/etc/aliases添加一行

user1:user1,user2

群发邮件

usersmail:user1,user2,user3,user4

发送邮件usersmail时,就会发送user1,user2,user3,user4 修改之后需要激活邮件别名功能

newaliases

或者重启

service postfix restart

测试传递

echo “haha” |mail  -s “from root” user1

From root@laoniangke.com  Sun Mar 10 02:44:50 2013 Return-Path: <root@laoniangke.com> X-Original-To: user1 Delivered-To: user1@laoniangke.com Received: by mail.laoniangke.com (Postfix, from userid 0) id D8E13158400; Sun, 10 Mar 2013 02:44:50 +0800 (CST) //邮件id To: user1@laoniangke.com Subject: from root Message-Id: <20130309184450.D8E13158400@mail.laoniangke.com> Date: Sun, 10 Mar 2013 02:44:50 +0800 (CST) From: root@laoniangke.com (root)

haha 还可以使用telnet localhost 25进行测试 不设置smtpdauthorizedxclient_hosts=localhost的话,命令会输出以下内容就没反应了的。

Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

这里进行配置,网上查了下遇到问题的人很多,我也是在读《Linux管理员技术手册》才明白 postconf -e smtpdauthorizedxclient_hosts=localhost

补充说明 postconf命令 配置postfix的工具,不带参数是打印输出当前配置好的参数 加上-d参数,是打印默认的参数,而不是当前配置的值 -n是当前配置的与默认不同德参数 -e参数是进行设置

postfix check   <==检查 postfix 相关的档案、权限等是否正确! postfix start   <==开始 postfix 的执行 postfix stop    <==关闭 postfix postfix flush   <==强制将目前正在邮件队列的邮件寄出! postfix reload  <==重新读入配置文件,也就是 /etc/postfix/main.cf

参考:

《鸟哥的Linux私房菜》

《Linux管理员技术手册》

好久没更新了,需要除除草