当前位置:文档之家› LAMP+postfix+dovecot+mailman搭建邮件服务器及邮件列表

LAMP+postfix+dovecot+mailman搭建邮件服务器及邮件列表

LAMP+postfix+dovecot+mailman搭建邮件服务器及邮件列表声明:鉴于此前有其他用户未经本同意上传本人原创作品的情况,特在此声明,此文由libidli (百度ID)编写,任何人本人未经同意不得转载或上传email:libidli@目录一、邮件列表所需要的安装包 (3)二、安装Apache (3)三、安装MySQL (3)四、安装PHP (4)五、安装并配置postfix (5)六、安装并配置Dovecot (7)七、支持虚拟用户 (8)八、安装extmail及extman (10)九、病毒及垃圾邮件过滤 (13)十、安装配置mailman (14)十一、总结 (17)十二、【参考文档】 (17)十三、【附录一】cyrus-sasl2的安装 (17)十四、【附录二】搭建所遇问题及解决方案 (18)本文系统环境是rhel-server-5.5一、邮件列表所需要的安装包简单地说,搭邮件列表的前提是搭一个邮件服务器,能收发邮件才能实现一个邮件列表的功能;收信主要通过IMAP或POP3服务完成;发信主要通过SMTP服务完成;为了更好的实现操作及管理,所以还需要提供web邮件及管理服务;另外为了保证邮件的安全可靠,还需要提供一些发信认证、垃圾邮件扫描、病毒扫描的服务;以上这些服务安装基础设施LAMP二、安装Apache#tar –zxf httpd-2.2.21.tar.gz#cd /usr/local/src/httpd-2.2.21#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite#make#make install三、安装MySQL#useradd –M –s /sbin/nologin mysql mysql需要一个独立的账户执行系统有可能自带mysql,建立先将其卸载掉#tar zxf mysql-5.5.17.tar.gz#cd /usr/local/src/ mysql-5.5.17#./configure --prefix=/usr/local/mysql#make#make install以上完成后,配置MySQL#cd mysql-5.5.17#cp support-files/f /etc/f 复制主配置文件#/usr/local/mysql/bin/mysql_install_db --user=mysql 初始化#chown -R root:mysql /usr/local/mysql#chown -R mysql /usr/local/mysql/var#echo “/usr/local/mysql/lib/mysql”>> /etc/ld.so.conf 添加库文件路径#ldconfig 刷新库文件搜索路径#/usr/local/mysql/bin/mysqld_safe --user=mysql & 后台安全启动(如果显示启动并且卡住不动按回车)#cd /usr/local/src/ mysql-5.5.17#cp support-files/mysql.server /etc/init.d/mysqld 复制启动脚本#chmod +x /etc/init.d/mysqld 赋予脚本执行权限#chkconfig --add mysqld 添加到系统自动启动服务中#chkconfig mysqld on 默认启动mysql#chkconfig --list mysqld 查看mysql在什么级别启动或者关闭#echo “PATH=$PATH:/usr/local/mysql/bin”>> /etc/profile设置系统全局的环境变量PATH值,方便使用mysql数据库命令四、安装PHP#tar jxf php-5.3.8.tar.gz#cd php-5.3.8#./configure --prefix=/usr/local/php5 --enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5#make#make test#make install#cd php-5.3.8#cp php.ini-development /usr/local/php5/php.ini 复制配置文件#vim /usr/local/apache2/conf/httpd.conf 修改apache服务的主配置文件使其支持phpLoadModule php5_module modules/libphp5.so 确认这行的存在,如果没有就重新编译phpAddType application/x-httpd-php .php 添加这行记录增加apache支持php文件类型DirectoryIndex index.php index.html测试php是否安装成功#vim /usr/local/apache2/htdocs/test.php<?phpphpinfo();?>在浏览器中输入http://你的IP/test.php 看到下图表示跟apache服务整合成功测试与Mysql 集成是否成功#vim /usr/local/apache2htdocs/testdbdb.php<?php$link=mysql_connect(‘localhost’ , ‘root, ‘’);If (!$link) echo “Fail!!!”;else echo “Success!!!”;mysql_close();?>看到此画面表示与Mysql集成成功基础设施安装完成,接下来为发信准备,安装postfix五、安装并配置postfix5.1 安装系统一般为自带sendmail,同样提供smtp服务,但目前已经不太流行了,postfix比其更为优秀,需要先将其停服务,以确保postfix能正常工作#service sendmail stop#chkconfig --level 35 sendmail off开始安装postfix#groupadd -g 1200 postdrop#groupadd -g 1000 postfix#useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix# postfix-2.8.2.tar.gz执行下一步之前确保安装了sasl2,如果没有sasl2,需要先安装cyrus-sasl2,安装步骤见附录1#make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2'#make#make install安装过程中遇到互动提问,直接回车就行5.2配置#vim /etc/postfix/main.cfInet_interfaces = all 默认设置myhostname = 主机名mydomain = 邮件域名myorigin = $mydomain 外发邮件时发件人地址中的邮件域名mydestination = $mydomain,$myhostname 可接收的邮件地址中的域名home_mailbox = Maildir/ 邮件存储位置格式#postfix check 检查配置#postfix start 启动5.3测试邮件本地账户管理#groupadd mailusers#useradd -g mailusers -s /sbin/nologin test1#useradd -g mailusers -s /sbin/nologin test2#passwd test1#passwd test2SMTP发送邮件测试#telnet localhost 25 连接本地的SMPT端口Tring 127.0.0.1..Connected to localhost.localdomain (127.0.0.1).Escape ch aracter is ‘^]’.220 ESMTP Postfixehlo localhost 宣告客户端主机地址250 MAIL FROM: test01@ 发信人地址250 2.1.0 okRCPT TO: test02@ 收信人地址250 2.1.5 okDATA 标记开始写信354 End data with <CR><LF>.<CR><LF>Subject:hi 信件题目Hello!I’m just testing.. “点”表示信件结束250 2.0.0. ok:queued as 2F9CB756DCquit 退出221 2.0.0 ByeConnection closed by foreign host.查看接收到的邮件#cat /home/test2/Maildir/new/ 按tab键若看见刚才发的那封邮件,说明SMPT没有问题。

为收信做准备,安装Dovecot(意为信鸽,挺形象的)六、安装并配置Dovecot6.1安装#useradd -M -s /sbin/nologin dovecot#tar zxf dovecot-1.1.4.tar.gz -C /usr/local/src#cd /usr/local/src/dovecot-1.1.4#./configure --sysconfdir=/etc --with-mysql#make#make install6.2配置#cp /etc/dovecot-example.conf /etc/dovecot.conf 复制主配置文件#vim /etc/dovecot.confssl_disable = yes 禁用SSL机制protocols = pop3 imap 指定邮局协议disable_plaintext_auth = no 允许明文密码认证mail_location = maildir:~/Maildir 设置邮件存储格式和位置#vim /etc/pam.d/dovecot 创建pam认证文件auth required pam_nologin.soauth include system-authaccount include system-authsession include system-auth#/usr/local/sbin/dovecot -c /etc/dovecot.conf 启动6.3 POP3方式测试收邮件(也可用imap,imap是143端口)#telnet localhost 110Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.+OK Dovecot ready.user test1 输入用户名+OKpass ***** 输入密码+OK Logged in.list 列出邮件列表+OK 1 messages;1 480.retr 1 查看第一封邮件+OK 480 octets测试完成,输入quit退出接下来支持虚拟用户七、支持虚拟用户7.1使用extman建立虚拟用户数据库,以后的用户及相关管理都会通过extman完成#tar zxf extman-1.1.tar.gz -C /usr/local/src#cd /usr/local/src/ extman-1.1/docs#mysql -u root -p < extmail.sql#mysql -u root -p <init.sql7.2让postfix支持虚拟用户#vim /etc/postfix/main.cf#mydestination = $mydomain, $myhostname 该行需要注释掉virtual_mailbox_base = /mailbox 指定虚拟邮箱存储目录的路径起点virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf指定虚拟邮件用户对应的别名文件位置virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf指定记录虚拟邮箱地址与存储位置对应关系的映射文件位置virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf设置postfix服务器可以接收的虚拟邮件域的域名virtual_uid_maps = static:1000 设置所有虚拟邮件用户映射的本地用户的UID号virtual_gid_maps = static:1000 设置所有虚拟邮件用户映射的本地组的GID 号#cd /usr/local/src/ extman-1.1/docs#cp mysql_virtual_* /etc/postfix/ 在上面的三行配置中指定了这三个文件7.3为虚拟用户设置发信认证发信认证通过courier-authlib完成,如果没有认证,别人就可以很方便的使用你的邮箱发出一些垃圾邮件,所以这一步非常必要。

相关主题