Liunx邮件系统(postfix+dovecot+postfixadmin)

更新时间:2023-04-23 09:54:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Liunx邮件系统(postfix+dovecot+postfixadmin)

Liunx邮件系统(postfix+dovecot+postfixadmin)

一、 相应软件介绍

1. Dovecot:用户验证以及收取邮件

2. Postfix:发送邮件

3. Postfixadmin:域名和用户管理工具,为postfix和dovecot提供了mysql数据库的支持

二、 创建相应的用户和工作组

默认mysql和php、apache已经装好了。Apache必须2.0以上版本。安装PHP必须5.2以上版本。安装的时候,在configure的时候,加上 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-zlib --with-zlib-dir=/usr/local/php/zlib --with-mcrypt --enable-mbstring --with-hash ,网上有安装的方法;安装好mysql , 我的mysql装在 /usr/local/mysql。

运行一下命令创建相应的用户和工作组: #groupadd -g 2002 postfix

#groupadd -g 2003 postdrop

#useradd -u 2002 -g 2002 -G postdrop -d /dev/null -s /sbin/nologin postfix #useradd -d /dev/null -s /sbin/nologin dovecot

三、 安装配置dovecot

1. 安装dovecot

1) 下载dovecot安装软件

2) 具体安装,运行以下命令: #tar -zxf dovecot-(版本号).tar.gz

#cd dovecot-(版本号)

#./configure --prefix=/usr/local/dovecot --sysconfdir=/etc/dovecot --with-sql --with-sql-drivers --with-mysql=/usr/local/mysql

#make && make install

2. 配置dovecot

配置文件在/etc/dovecot(也有可能在/usr/local/etc/),运行以下命令: #cd /etc/dovecot

#cp dovecot-example.conf dovecot.conf

修改dovecot.conf文件如下:

disable_plaintext_auth = no

ssl_disable = yes (根据不同的版本,如果是ssl则将ssl设置为no)

Liunx邮件系统(postfix+dovecot+postfixadmin)

protocols = pop3 pop3s imap imaps

mail_location = maildir:/mail/%d/%n(创建/mail文件夹,并给他赋予postfix的

全部权限)

log_path=/var/log/dovecot/dovecot.log

info_log_path=/var/log/dovecot/dovecot_info.log

pop3_uidl_format = %08Xu%08Xv

imap_client_workarounds = delay-newmail outlook-idle netscape-eoh

pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

auth default {

...

mechanisms = PLAIN LOGIN

passdb sql { //去掉注释

args = /etc/dovecot/dovecot-sql.conf

}

...

userdb sql {//去掉注释

args = /etc/dovecot/dovecot-sql.conf

}

...

socket listen {

...

client {

path = /var/run/dovecot/auth-client

//postfix依靠dovecot 实现 SMTP AUTH 时要用,在postfix中的main.cf配

置文件中的smtpd_sasl_path=要引用这项

mode = 0660

user = postfix

group = postfix

}

}

}

3. 配置dovecot-sql.conf

#cp dovecot-sql-example.conf dovecot-sql.conf

修改dovecot-sql.conf

driver = mysql

connect = host=localhost dbname=postfix user=postfix password=postfixPnp1993 default_pass_scheme=MD5-CRYPT //改成PLAIN-MD5 后就不会与postfixadmin生成的密码兼容,除非使用下面介绍的修改postfixadmin,

//dovecot的加密方式见 password_query = select username as user,password from mailbox where substring(username,1,instr(username,'@')-1) = '%n' And active='1'

user_query = select concat('/mail/', maildir) as home,2002 as uid ,2002 as gid from mailbox where username='%u' And active='1'

4. 创建符号链接

Liunx邮件系统(postfix+dovecot+postfixadmin)

#ln -s /usr/local/dovecot/sbin/dovecot /usr/bin/dovecot

四、 安装postfixadmin

1. 下载postfixadmin

2. 把postfixadmin软件解压缩至apache运行目录下,比如 /var/www cd /var/www/postfixadmin

chmod 744 *.php *.css

cd admin/

chmod 744 *.php .ht*

cd ../images/

chmod 744 *.gif *.png

cd ../languages/

chmod 744 *.lang cd ../templates/

chmod 744 *.tpl

cd ../users/

chmod 744 *.php

3. 在数据库中创建一个名为postfix的数据库

4. 修改postfixadmin文件夹中的config.inc.php

<?php

# 注意:上面这行必须添加,这是 PHP 脚本的标记。

# 改为 'true',表示这个文件已经配置好了。否则无法登录 PostfixAdmin。 $CONF['configured'] = true;

# 默认的界面语言

$CONF['default_language'] = 'cn';

# 配置 PostfixAdmin 连接 MySQL 数据库

# 注意:

# 这里的 database_user 必须要有修改 'postfix' 这个数据库的权限,所以 $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = '127.0.0.1';

$CONF['database_user'] = 'root';

$CONF['database_password'] = 'your_password_here';

# 这是存储虚拟域和虚拟用户的那个数据库的名字

$CONF['database_name'] = 'postfix';

$CONF['encrypt'] = 'md5crypt';

$CONF[‘dovecotpw’]= “/usr/local/dovecot/sbin/dovecotpw”;

# 虚拟域的管理员在使用 PostfixAdmin 有问题时和谁联系:

$CONF['admin_email'] = 'postmaster@'

Liunx邮件系统(postfix+dovecot+postfixadmin)

# 是否在用户的 Maildir/ 路径中包含域名。

# 由于我们的虚拟用户是按照域名来归类和存储的,所以这里选择 'YES'。

# Maildir 路径示例(用户 www@ 的 Maildir 在系统上的位置): # /home/vmail//www/

$CONF['domain_path'] = 'YES';

# 在 Maildir/ 的路径中,是否以邮件地址作为目录名,例如:

# /home/vmail//www@/

# 由于我们规划好的路径是: /home/vmail//www/ 这样的格式, # 所以这里设置为 'NO'。

$CONF['domain_in_mailbox'] = 'NO';

# 当然要使用邮箱容量限额啦:

$CONF['quota'] = 'YES';

# PostfixAdmin 会将查询到的 'quota' 属性的值除以 'quota_multiplier' 中设置的值。

# 由于在 Dovecot 中 quota 为 10240 表示 10M,所以这里需要将它设置为 '1024',这样

# 显示的信息才会正确。

$CONF['quota_multiplier'] = '1024';

# 我们使用 dovecot 作为 transport,所以这里设置为 'YES',并在 transport_options

# 里添加 'dovecot'。也可以只保留 'dovecot',删除其它的几个。

$CONF['transport'] = 'YES';

$CONF['transport_options'] = array (

'dovecot', // <-- Add this.

'virtual', // for virtual accounts

'local', // for system accounts

'relay' // for backup mx

);

# 使用 'dovecot' 作为默认的 transport

$CONF['transport_default'] = 'dovecot';

# 暂时不需要这几个

$CONF['backup'] = 'NO';

$CONF['fetchmail'] = 'NO';

$CONF['show_footer_text'] = 'NO';

# 下面这一行表示 PHP 代码结束。

?>

Liunx邮件系统(postfix+dovecot+postfixadmin)

5. 安装可以看postfixadmin自带的install.txt文件。

五、 安装配置postfix

1. 安装postfix

1) 下载postfix安装软件,可以到postfix官网下载最新版

2) 具体安装,运行以下命令: #tar -zxf postfix-(版本号).tar.gz

#cd postfix-(版本号)

#make -f Makefile.init makefiles \

'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \

-DUSE_TLS -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' \

'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm'

(将/usr/local/mysql/lib/mysql/libmysqlclient.so.15拷贝到/usr/lib)

#make

#make install (一切按照缺省的就好了)

#mv /etc/aliases /etc/aliases.old

#ln -s /etc/postfix/aliases /etc/aliases

#/usr/bin/newaliases

2. 配置postfix

修改配置文件/etc/postfix/main.cf inet_interfaces = all

myhostname = ##不能与mysql里的domain重名

mydomain =

myorigin = $mydomain

mydestination = $myhostname localhost localhost.$mydomain #一定不要出现与MYSQL->postfix->domain表中重名的 如:$mydomain,所以我就选这行

mynetworks = 127.0.0.0/8

home_mailbox=Maildir/

#=====================Vritual Mailbox settings========================= virtual_mailbox_base = /mail/

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:2002

virtual_gid_maps = static:2002

virtual_transport = virtual

#====================QUOTA========================

message_size_limit = 52428800 //每个邮件最大尺寸50M

mailbox_size_limit = 209715200 //邮箱大小限制200M

virtual_mailbox_limit = 209715200

virtual_create_maildirsize = yes

Liunx邮件系统(postfix+dovecot+postfixadmin)

virtual_mailbox_extended = yes

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

virtual_mailbox_limit_override = yes virtual_overquota_bounce = yes

#====================SASL ESMTP Authenticat=================

smtpd_sasl_auth_enable = yes

smtpd_sasl_type = dovecot //用dovecot进行认证

smtpd_sasl_path = /var/run/dovecot/auth-client //与dovecot.conf中如下的的path一致,前面讲过

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = permit_mynetworks, //注意,后面到smtpd_sals_local_domain的每一行前面都有一个空格

permit_sasl_authenticated,

reject_invalid_hostname,

reject_non_fqdn_hostname,

reject_unknown_sender_domain,

reject_non_fqdn_sender,

reject_non_fqdn_recipient,

reject_unknown_recipient_domain,

reject_unauth_pipelining,

reject_unauth_destination

smtpd_sasl_local_domain =

smtpd_sasl_security_options = noanonymous

smtpd_banner=$myhostname ESMTP

查看master.cf文件必须包含下面一行

virtual unix - n n - - virtual

编辑/etc/postfix/mysql_virtual_alias_maps.cf 为以下内容

user = postfix

password = postfix

hosts = localhost

dbname = postfix

table = alias

select_field = goto

where_field = address

编辑/etc/postfix/mysql_virtual_domains_maps.cf 为以下内容

user = postfix

password = postfix

hosts = localhost

dbname = postfix

table = domain

Liunx邮件系统(postfix+dovecot+postfixadmin)

select_field = description

where_field = domain

编辑/etc/postfix/mysql_virtual_mailbox_limit_maps.cf 为以下内容 user = postfix

password = postfix

hosts = localhost

dbname = postfix

table = mailbox

select_field = quota

where_field = username

编辑/etc/postfix/mysql_virtual_mailbox_maps.cf 为以下内容 user = postfix

password = postfix

hosts = localhost

dbname = postfix

table = mailbox

select_field = maildir

where_field = username

注意:

1. 最后给/etc/postfix/mysql_*.cf文件附上权限(其他用户要有读权限)。使用postfix

check 来检查配置文件是否正确。

2. 还就注意复制上去的配置文件可能会有空格或是tab会导致check错误。错误如下:

Should be “no” or^…….

Unable to create missing queue …..

3. 如果你在dovecot-sql.conf中用的是default_pass_scheme=PLAIN-MD5,就要修改

postfixadmin中的functions.inc.php的函数pacrypt

function pacrypt($pw,$pw_db){

//加入普通的md5加密

if ($CONF['encrypt']=='md5'){

$password=md5($pw);

}

}

//同时也要改其它相关webmail操作中的有关加密password一项

修改config.inc.php(postfixadmin)

$CONF['encrypt']='md5';

如果你在dovecot-sql.conf中用的是default_pass_scheme=MD5-CRYPT ,就不需要修改任何地方(建议保持MD5-CRYPT)

4. virtual_mailbox_base = /mail/ 需要给mail文件夹赋予权限,其他所有者必须有读写

权限。

5. 再新建域是描述一定要填写,否则会无法发送邮件。

6. 一定需要配置DNS服务器。

本文来源:https://www.bwwdw.com/article/vktq.html

Top