mysql开启邮件服务_配置完整的邮件服务

配置整个基于webmail的邮件服务

如图:

1d7e6d1f81d61e428b8190d4b2d346dd.png

一、

1.配置yum源,安装所需的rpm包

#vim /etc/yum.repos.d/server.reop

[base]

name=Server

baseurl=http://172.16.0.1/yum/Server

gpgcheck=0

#yum clean all

#yum list all

安装开发包组

yum groupinstall "Development Tools" "Development Libraries" "Legacy Software Development" "X

Software Development"

yum install httpd php php-mysql 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.配置DNS

#yum install bind

-----------------------------

#vim /etc/named.conf

options {

directory "/var/named";

};

zone "." IN {

type hint;

file "named.ca";

};

zone "localhost" IN {

type master;

file "localhost.zone";

};

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

};

zone "hanlenry.com" IN {

type master;

file "hanlenry.com.zone";

};

zone "0.168.192.in-addr.arpa" IN {

type master;

file "192.168.0.zone";

};

------------------------------

cd /var/named

-----------------------------

#vim named.ca

#dig -t NS . > /var/named/named.ca

------------------------------

vim localhost.zone

$TTL    86400

@               IN SOA  localhost.       admin.localhost. (

2011082201

1H

10M

7D

1D )

IN NS           localhost.

IN A            127.0.0.1

------------------------------

vim named.local

$TTL    86400

@       IN      SOA     localhost. admin.localhost.  (

2011082201

1H

10M

7D

1D )

IN      NS      localhost.

1       IN      PTR     localhost.

------------------------------

vim hanlenry.com.zone

$TTL 86400

@       IN      SOA     hanlenry.com.   admin.hanlenry.com. (

2011082201

1H

10M

7D

1D )

IN      NS      ns.hanlenry.com.

IN      MX 10   mail.hanlenry.com.

ns      IN      A       192.168.0.15

mail    IN      A       192.168.0.15

-----------------------------

#vim 192.168.0.zone

$TTL 86400

@       IN      SOA     hanlenry.com.   admin.hanlenry.com. (

2011082201

1H

10M

7D

1D )

IN      NS      ns.hanlenry.com.

15      IN      PTR     ns.hanlenry.com.

15      IN      PTR     mail.hanlenry.com.

---------------------------------------

#vim /etc/resolv.conf

nameserver 192.168.0.15

做测试:

#dig -t A mail.hanlenry.com

#dig -x 192.168.0.15

----------------------------------------

3.启动mysql数据库,并给mysql的root用户设置密码

#service mysqld start

#chkconfig mysqld on

#mysql

set password for root@'localhost'=PASSWORD('redhat');

set password for root@'127.0.0.1'=PASSWORD('redhat');

二、下载postfix,安装配置postfix

1.

#tar xf postfix-2.6.5.tar.gz

#cd postfix-2.6.5

#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

#make makefile '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 install

按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值)

install_root: [/] /

tempdir: [/usr/local/src/ postfix-2.6.5] /tmp

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/postfix_html

manpages: [/usr/local/man]

readme_directory: [no]

生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低:

#  newaliases

2.进行一些基本配置:

#postconf -m ,看一下是否有mysql

#cd /etc/postfix

#postconf -n

#cp main.cf main.cf.bak  ,对配置文件做一下备份。

#vim main.cf

作必要修改

myhostname = mail.test.com

myorigin = test.com

mydomain = test.com

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks = 192.168.1.0/24, 127.0.0.0/8

启动newaliases

#postfix start

做测试

#telnet mail.hanlenry.com 25

Trying 192.168.0.15...

Connected to mail.hanlenry.com (192.168.0.15).

Escape character is '^]'.

220 Welcome to our mail.hanlenry.com

mail from:gentoo@hanlenry.com

250 2.1.0 Ok

rcpt to:centos@hanlenry.com

250 2.1.5 Ok

data

354 End data with .Hello

.

250 2.0.0 Ok: queued as E3AF61BF00C

quit

221 2.0.0 Bye

Connection closed by foreign host.

postfix启动脚本,我跟你提供有postfix.startup

#vim postfix.startup ,基本不需要做什么修改。

#cp postfix.startup /etc/init.d/postfix

#chkconfig --add postfix

#chkconfig postfix on

#chmod +x /etc/init.d/postfix

#postfix -a

三、为postfix开启基于cyrus-sasl的认证功能

#vim /etc/postfix/main.cf

broken_sasl_auth_client = yes

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_recipient_restrictions=premit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

smtpd_sasl_local_domain = $myhostname

smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!

#cd /usr/lib/sasl2

#vim smtpd.conf

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

#service saslauthd start

#service postfix restart

做测试

#telnet mail.a.org 25

#telnet mail.hanlenry.com 25

Trying 192.168.0.15...

Connected to mail.hanlenry.com (192.168.0.15).

Escape character is '^]'.

220 Welcome to our mail.hanlenry.com ESMTP,Warning: Version not Available!

ehlo mail.hanlenry.com

250-mail.hanlenry.com

250-PIPELINING

250-SIZE 14336000

250-VRFY

250-ETRN

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN   (认证功能)

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

-----------

四、安装Courier authentication library

#tar xf courier-authlib-0.62.4.tar.bz2

#cd courier-authlib-0.62.4

#./configure  --prefix=/usr/local/courier-authlib --sysconfdir=/etc --with-authmysql --with-mysql

-libs=/usr/lib/mysql --with-mysql-includes=/usr/include/mysql --with-redhat --with-

authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc --with-ltdl-lib=/usr/lib --

with-ltdl-include=/usr/include

#make

#make install

#chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

#cp /etc/authdaemonrc.dist  /etc/authdaemonrc

#cp /etc/authmysqlrc.dist /etc/authmysqlrc

#vim /etc/authdaemonrc

authmodulelist="authmysql"

authmodulelistorig="authmysql"

daemons=10

#vim /etc/authmysqlrc

MYSQL_SERVER localhost

MYSQL_PORT 3306                   (指定你的mysql监听的端口,这里使用默认的3306)

MYSQL_USERNAME  extmail      (这时为后文要用的数据库的所有者的用户名)

MYSQL_PASSWORD extmail        (密码)

MYSQL_SOCKET  /var/lib/mysql/mysql.sock

MYSQL_DATABASE  extmail

MYSQL_USER_TABLE  mailbox

MYSQL_CRYPT_PWFIELD  password

MYSQL_UID_FIELD  '2525'

MYSQL_GID_FIELD  '2525'

MYSQL_LOGIN_FIELD  username

MYSQL_HOME_FIELD  concat('/mailbox/',homedir)

MYSQL_NAME_FIELD  name

MYSQL_MAILDIR_FIELD  concat('/mailbox/',maildir)

#cp courier-authlib.sysvinit /etc/init.d/courier-authlib

#chmod 755 /etc/init.d/courier-authlib

#chkconfig --add courier-authlib

#chkconfig courier-authlib on

#echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf.d/courier-authlib.conf

#ldconfig -v

#service courier-authlib start

-----------

新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:

#mkdir -pv /var/mailbox

#chown -R postfix /var/mailbox

#cd /usr/lib/sasl2

接下来重新配置SMTP 认证,编辑smtpd.conf ,确保其为以下内容:

#vim smtp.conf

pwcheck_method:authdaemond

log_level:3

mech_list:PLAIN LOGIN

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

---------

五、让postfix支持虚拟域和虚拟用户

1.

#vim /etc/postfix/main.cf

编辑/etc/postfix/main.cf,添加如下内容:

########################Virtual Mailbox Settings########################

virtual_mailbox_base = /var/mailbox

virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_alias_domains =

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_uid_maps = static:2525

virtual_gid_maps = static:2525

virtual_transport = virtual

maildrop_destination_recipient_limit = 1

maildrop_destination_concurrency_limit = 1

##########################QUOTA Settings########################

message_size_limit = 14336000

virtual_mailbox_limit = 20971520

virtual_create_maildirsize = yes

virtual_mailbox_extended = yes

virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

virtual_mailbox_limit_override = yes

virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota,

please Tidy your mailbox and try again later.

virtual_overquota_bounce = yes

----------

2.下载extman-1.1.tar.gz,并为extman源码目录下的docs目录中的extmail.sql和init.sql建立数据库

#tar xf extman-1.1.tar.gz

#cd extman-1.1/docs

#mysql -u root -p < extmail.sql

#mysql -u root -p < init.sql

cp mysql*  /etc/postfix/

授予用户extmail访问extmail数据库的权限

#mysql

grant all privileges on extmail.* to extmail@localhost identified by 'extmail';

grant all privileges on extmail.* to extmail@127.0.0.1 identified by 'extmail';

说明:启用虚拟域以后,需要取消中心域,即注释掉myhostname, mydestination, mydomain, myorigin几个指

令;当然,你也可以把mydestionation的值改为你自己需要的。

#service postfix start

-------------

六、配置dovecot

#vim /etc/postfix/main.cf

启动home_mailbox = Maildir/

#vim /etc/dovecot.conf

mail_localtion = maildir:/var/mailbox/%d/%n/Maildir

auth default {

把pam注释掉

把passdb sql启用

添加args=/etc/dovecot-mysql.conf

把userdb syq启用

添加args=/etc/dovecot-mysql.conf

#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'

#service dovecort start

#chkconfig dovecot on

--------------------

七、安装Extmail-1.2

mkdir -pv /var/www/extsuite

#tar xf extmail-1.2.tar.gz -C /var/www/extsuite

#cd /var/www/extsuite

#mv extmail-1.2 extmail

#cp webmail.cf.default webmail.cf

#vim /var/www/extsuite/webmail.cf

部分修改选项的说明:

SYS_MESSAGE_SIZE_LIMIT = 5242880

用户可以发送的最大邮件

SYS_USER_LANG = en_US

语言选项,可改作:

SYS_USER_LANG = zh_CN

SYS_MAILDIR_BASE = /home/domains

此处即为您在前文所设置的用户邮件的存放目录,可改作:

SYS_MAILDIR_BASE = /var/mailbox

SYS_MYSQL_USER = db_user

SYS_MYSQL_PASS = db_pass

以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为:

SYS_MYSQL_USER = extmail

SYS_MYSQL_PASS = extmail

SYS_MYSQL_HOST = localhost

指明数据库服务器主机名,这里默认即可

SYS_MYSQL_TABLE = mailbox

SYS_MYSQL_ATTR_USERNAME = username

SYS_MYSQL_ATTR_DOMAIN = domain

SYS_MYSQL_ATTR_PASSWD = password

以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即

SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket

此句用来指明authdaemo socket文件的位置,这里修改为:

SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket

--------------

#yum install httpd

修改httpd的主配置文件

#vim /etc/httpd/cong/httpd.conf

创建虚拟主机,注销中心主机,开启虚拟主机

User postfix

Group postfix

ServerName mail.hanlenry.com

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

修改用户和组为postfix

#chown -R postfix:postfix /var/www/extsuite/extmail/cgi/

依赖关系的解决

extmail将会用到perl的Unix::syslogd功能

# tar zxvf Unix-Syslog-0.100.tar.gz

# cd Unix-Syslog-0.100

# perl Makefile.PL

# make

# make install

#service httpd start

#chkconfig httpd on

------------

八、安装Extman-1.1

#cd

#mv extman-1.1 /var/www/extsuite/extman

# cp /var/www/extsuite/extman/webman.cf.default  /var/www/extsuite/extman/webman.cf

# vi /var/www/extsuite/extman/webman.cf

SYS_MAILDIR_BASE = /home/domains

此处即为您在前文所设置的用户邮件的存放目录,可改作:

SYS_MAILDIR_BASE = /var/mailbox

修改cgi目录的属主:

# chown -R postfix.postfix /var/www/extsuite/extman/cgi/

在apache的主配置文件中Extmail的虚拟主机部分,添加如下两行:

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

创建其运行时所需的临时目录,并修改其相应的权限:

#mkdir  -pv  /tmp/extman

#chown postfix.postfix  /tmp/extman

修改

SYS_CAPTCHA_ON = 1

SYS_CAPTCHA_ON = 0

OK,一切都搞定了,接下来你在浏览器的地址栏中输入mail.hanlenry.org,就会出现登陆界面。

如图:

c944b5564e00f62bc98628ef36bc4106.png

选择“登陆邮箱管理”即可登入extman进行后台管理了。

默认管理帐号为:root@extmail.org  密码为:extmail*123*

如图:

a4dd4926757f880eca3cbbe08e7a1c5f.png

进入之后的界面,选择域列表。如图:

4c7c8e45572523bfef9dddf569945f90.png

再选择添加域,如图:

48d14eb1c0344f5fb227d10ad5bcd731.png

进入到编辑域界面,如图:

b58e2fdfff6284e9a2ba972ec64c644f.png

你可以根据自己的情况编辑,在允许自由注册的那一项,在你修改完域列表之后,保存修改之后,还得再次修改一下,再把这一选项勾上。然后保存修改。

接下来你重新登陆,就可以给你的用户创建免费邮箱了。

快来试试吧!

可能会出现的问题:

如果你建立了邮箱后,但是登陆不了,可能会提示如下错误:

Can't chdir to /var/mailbox/hanlenry.com/hjkhan/Maildir/, No such file or directory

请你查看一下/etc/postfix/main.cf中你的mydestination是否注销了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值