搭建Red Hat Enterprise Linux 5.4的Postfix邮件服务器
在安装之前先确认系统中已经有编译安装好的LAMP架构<!---->编译安装postfix由于系统中有rpm安装的postfix,需要将其卸载掉,并且停止掉sendmail服务,然后才能够开始安装。servicesendmailstop 当前关闭chkconfigsendmailoff 永久关闭(1)、从官方站点http://mirror.postfixchina.org下载源码包,postfix-2.4.6.tar.gz,并从站点http://vda.sourceforge.org下载补丁包postfix-2.4.6-vda-ng.patch.gz创建postfix的用户和组:#groupadd-g1200postdrop
#groupadd-g1000postfix
#useradd -u1000-gpostfix-Gpostdroppostfix (2)、解压并释放源码包#tar zxvf postfix-2.4.6.tar.gz –C /usr/src
#gunzip postfix-2.4.6-vda-ng.patch.gz
#cd postfix-2.4.6
#patch-p1</补丁所在目录 /postfix-2.4.6-vda-ng.patch (3)、预编译配置参数# 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 ' 注意:“\”是命令换行标记,因为命令太长,所以用“\”换行输入<!---->l<!----><!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.gif<!---->CCARGS参数:为C语言编译器提供额外的参数(C-language Compiler Arguments ),-I选项(字母i的大写)指出额外的头文件的存放目录<!---->l<!---->AUXLIBS参数:指出位于标准位置之外的额外/辅助的函数库(Auxiliaries Libraries),-lmysqlclient、-lz、-lm、-lsasl2中的”l“为字母L的小写 (4)、make编译,make install 安装执行安装的时候,期间会遇到一些设置参数,直接按回车即可。 <!---->三、 <!---->修改配置文件<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image007.gif<!---->Postfix的主配置文件位于/etc/postfix/main.cf,不过在修改之前,我们最好先备份一下它,执行下面的命令:
#cd /etc/postfix
#cp main.cf main.cf.bak
#postfix –n > main.cf 然后,再执行vim main.cf修改配置文件<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image008.gif<!---->69行去#符号,myhostname = mail.benet.com
93行去# myorigin = $mydomain//本机发送的邮件后缀jerry@benet.com
77行去#,mydomain = benet.com
154行去#,mydestination = $myhostname, $mydomain 可以收取的邮件
409行去#,指定邮箱目录(在每个人的家目录里) 注意:此时需要有DNS的MX记录,负责解析main.benet.com到主机www.benet.com上面,而www.benet.com的主机记录是安装postfix的IP地址。 Postfix的配置文件中也可以有几个选项:mynetworks = 192.168.0.0/24//仅允许192.168.0.0网段访问message_size_limit = 10484760 //设置邮件大小上限为10Mmailbox_size_limit=209715200 //设置邮箱空间的上限为200M 设置完毕以后,就可以启动postfix服务了 echo “/usr/sbin/postfix start” >> /etc/rc.local postfix start <!---->四、 <!---->编译安装Dovecot由于postfix只支持SMTP协议,所以它只能发邮件,不能接邮件。为了使用POP3协议和IMAP4协议接邮件,我们需要软件dovecot。在安装dovecot之前,我们需要为dovecot创建一个同名用户Useradd –M –s /sbin/nologin dovecot<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image009.gif<!---->安装dovecot,依次执行以下命令
tar zxvf dovecot-1.1.4.tar.gz –C /usr/src
cd /usr/src/dovecot-1.1.4
./configure –sysconfdir=/etc
make && make install
cp /etc/dovecot-example.conf /etc/dovecot.conf 然后修改配置文件:vim /etc/dovecot.conf<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image010.gif<!---->23行,protocols = pop3imap
47行,disable_plaintext_auth = no
87行,ssl_disable = yes 禁用加密
208行去#符号 创建验证文件:vim/etc/pam.d/dovecot<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image011.gif<!---->
auth requiredpam_nologin.so
auth include system-auth
account include system-auth
session include system-auth:wq 保存退出启动服务:/usr/local/sbin/dovecot-c/etc/dovecot.conf
安装好了dovecot,并和postfix同时启动以后,还需要配置邮件的认证:#cp/usr/lib/sasl2/Sendmail.conf /usr/lib/sasl2/smtpd.conf#vim/usr/lib/sasl2/smtpd.conf 内容如下:pwcheck_method:sasluthd 启动服务: servicesaslauthdstart
搭建完成的WEB界面,并支持Postfix虚拟用户
安装extman,并修改配置文件#tar-xzfextman<tab> -C/usr/src#cd/usr/src/extman<tab>/docs#/usr/local/mysql/bin/mysql-uroot< extmail.sql#/usr/local/mysql/bin/mysql-uroot< init.sql 二、修改配置文件 #vim/etc/postfix/main.cf 其中mydestination那行,原文件有仅需要添加#符号即可余下所有行需要手动添加至文件末尾<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif<!---->
#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
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
复制数据库文件:#cpmysql_virtual_* /etc/postfix/ <!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.gif<!---->安装courier,该软件可以验证数据库中的用户与密码#cd/media/20<tab>
#tar-xjfcourier<tab> -C /usr/src
#cd/usr/src/courier<tab>
#./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with
-authmysql --with-redhat --with-mysql-libs=/usr/local/mysql/lib/mysql/ --with-
mysql-includes=/usr/local/mysql/include/mysql/#make && make install#make install-configure #vim/etc/ld.so.conf 在该文件末尾添加一行/usr/local/courier-authlib/lib/courier-authlib保存退出后,执行命令ldconfig 修改第一个配置文件:#vim/usr/local/courier-authlib/etc/authlib/authdaemonrc27行改为:authmodulelist="authmysql"34行改为:authmodulelistorig="authmysql" 修改一下权限:#chmod-R755/usr/local/courier-authlib/var/spool/authdaemon/ 修改第二个配置文件:#vim/usr/local/courier-authlib/etc/authlib/authmysqlrc<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image003.gif<!---->备注:参数分别位于,26,27,28,49,68,83,92,113,119,128,133,139,150行。
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD uidnumber
MYSQL_GID_FIELD gidnumber
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD concat('/mailbox/',homedir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir) <!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image004.gif<!---->拷贝启动脚本: #cp/usr/src/courier<tab>/courier-authlib.sysvinit /etc/init.d/courier-authlib
#chmod755/etc/init.d/courier-authlib #servicecourier-authlibstart<!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image005.gif<!---->
#cp/usr/lib/sasl2/Sendmail.conf /usr/lib/sasl2/smtpd.conf
#vim/usr/lib/sasl2/smtpd.conf
pwcheck_method:authdaemond
authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket 配置Dovecot,使之支持收取数据库邮件,注意内容原文件有,仅需去#符号即可,行号大约为:208,790,899,962行左右。 <!---->file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.gif<!---->#vim/etc/dovecot-mysql.conf (该文件默认不存在,需要手动创建)内容如下:
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox
WHERE username = '%u'
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox
WHERE username = '%u'
创建目录,并修改其权限#mkdir-p /mailbox/extmail.org/postmaster/Maildir/#chown-Rpostfix:postfix/mailbox 最后,部署Extmail邮件系统(支持使用浏览器收发邮件) #cd/media/20<tab>#tar-xzfUnix-Sys<tab> -C/usr/src#tar-xzfDBI<tab> -C/usr/src#tar-xzfDBD<tab> -C /usr/src#tar-xzf extmail<tab> -C /usr/src#PATH=$PATH:/usr/local/mysql/bin/ #cd/usr/src/Unix<tab>#perlMakefile.PL#make&&makeinstall #cd/usr/src/DBI<tab>#perlMakefile.PL#make&&makeinstall #cd/usr/src/DBD<tab>#perlMakefile.PL#make&&makeinstall #mv/usr/src/extmail<tab> /usr/local/apache2/htdocs/extmail将网站拷贝到apache目录下发布网站。 修改webmail使得该网站可以连接数据库:#vim/usr/local/apache2/htdocs/extmail/webmail.cf 以下内容行号:2,5,8,112,124,125,126,127,128 SYS_CONFIG = /usr/local/apache2/htdocs/extmail/SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/langSYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/htmlSYS_MAILDIR_BASE = /mailboxSYS_MYSQL_USER = extmailSYS_MYSQL_PASS = extmailSYS_MYSQL_DB = extmailSYS_MYSQL_HOST = localhostSYS_MYSQL_SOCKET = /tmp/mysql.sock #vim/usr/local/apache2/conf/httpd.confNameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/usr/local/apache2/htdocs/extmail/html/" ServerName mail.example.com ScriptAlias /extmail/cgi/ /usr/local/apache2/htdocs/extmail/cgi/ Alias /extmail /usr/local/apache2/htdocs/extmail/html/ ScriptAlias /extman/cgi /usr/local/apache2/htdocs/extman/cgi Alias /extman /usr/local/apache2/htdocs/extman/html/</VirtualHost>!!注意:SuexecUserGrouppostfixpostfix 该行不可输入,否则报错!该文件的66,67行,需要修改为UserpostfixGroup postfix完成!!!在Windows XP上使用IE浏览器访问,Linux服务器网页即可默认邮件账户: postmaster@extmail.org, 密码:extmail 我在马路边丢了一分钱 只要不下流,我们就是主流! 所有刻骨铭心的爱都灵魂游离于床上的瞬间! 帮你顶下哈!! 昨天,系花对我笑了一下,乐得我晚上直数羊,一只羊,两只羊,三只羊…… 恋爱就是无数个饭局,结婚就是一个饭局。
页:
[1]