debian+postfix+dovecot+squirrelmail安装配置笔记

系统和软件安装如下:
1.debian4.0
2.postfix(MTA)提供smtp功能
3.postfix-mysql提供postfix到mysql映射支持
4.MYSQL用户数据库存储
5.dovecot(POP3+IMAP+SASL)提供pop3+imap+(smtp sasl)
6.amavisd-new libclass-dbi-mysql-perl spamassassin clamav-daemon cpio arj zoo nomarch lzop cabextract pax lha unrar
垃圾邮件过虑及邮件病毒过虑
7.openssl提供SSL验证
8.phpmyadmin libapache2-mod-php5 php5-mysql提供web 方式管理mysql数据库存及数据.
9.squirrelmail(MAIL WEB)提供web mail接口,自动装上apache

debian 中安装软件用aptitude install 或apt-get install 比windows 还简单,在这里就不占篇幅了,不会的可以上网找一下。

下面是MYSQL数据库的创建:

创建数据库及表
mysqladmin password 2006 root的密码为:2006
mysqladmin -p create mail创建一个为mail的数据库

mysql>
GRANT Select ON mail.*
TO mailuser@localhost
IDENTIFIED BY '2007';
exit
创建一个mailuser的用户密码为:2007只有对mail数据库存查询权限

创建虚拟虚拟域表:domains
mysql>
Create TABLE `domains` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE = InnoDB;

创建虚拟用户表:users
Create TABLE users (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
user VARCHAR(40) NOT NULL,
password VARCHAR(32) NOT NULL,
CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
FOREIGN KEY (domain_id) REFERENCES domains(id) ON Delete CASCADE
) ENGINE = InnoDB;

创建 view_users表 方便查询及以后设置验证.
mysql>
Create VIEW view_users AS
Select users.user AS user, CONCAT(users.user, '@', domains.name) AS email,
    users.password
FROM users
LEFT JOIN domains ON users.domain_id=domains.id;


创建虚拟别名表:aliases
Create TABLE aliases(
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
source VARCHAR(20) NOT NULL,
destination VARCHAR(80) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES domains(id) ON Delete CASCADE
) ENGINE = InnoDB;

Create VIEW view_aliases AS
Select CONCAT(aliases.source, '@', domains.name) AS email,
       destination
FROM aliases
LEFT JOIN domains ON aliases.domain_id=domains.id;


创建虚拟域映射文件:
/etc/postfix/virtual-mailbox-domains.cf 
user = mailuser
password = 2007
hosts = 127.0.0.1
dbname = mail
query = Select 1 FROM domains Where name='%s'

创建虚拟邮箱映射文件
/etc/postfix/virtual-mailbox-maps.cf
user = mailuser
password = 2007
hosts = 127.0.0.1
dbname = mail
query = Select 1 FROM view_users Where email='%s'

创建虚拟别名映射文件
/etc/postfix/virtual-alias-maps.cf
user = mailuser
password = 2007
hosts = 127.0.0.1
dbname = mail
query = Select destination FROM view_aliases Where email='%s'

/etc/postfix/virtual-email2email.cf
user = mailuser
password = 2007
hosts = 127.0.0.1
dbname = mail
query = Select email FROM view_users Where email='%s'

$>postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
$>postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
$>postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf,mysql:/etc/postfix/virtual-email2email.cf

$> groupadd -g 5000 vmail
$> useradd -g vmail -u 5000 vmail -d /home/vmail -m
$> postconf -e virtual_uid_maps=static:5000
$> postconf -e virtual_gid_maps=static:5000
为了保障*.cf文件的安全,因内置密码;
chgrp postfix /etc/postfix/virtual-*.cf
chmod u=rw,g=r,o= /etc/postfix/virtual-*.cf

配置dovecot
为了让postfix用dovecot传送邮件在/etc/postfix/master.cf下添加以下服务:
dovecot   unix -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
为了让postfix用dovecot作虚拟传输在main.cf中添加以下项
$> postconf -e virtual_transport=dovecot
$> postconf -e dovecot_destination_recipient_limit=1

配置dovecot.conf
/etc/dovecot/dovecot.conf

添加以下服务支持
protocols = imap imaps pop3 pop3s

不去除明文密码认证
disable_plaintext_auth = no

告诉dovecot邮件是以maildir形式放在/home/vmail/域/用户
mail_location = maildir:/home/vmail/%d/%n

设定认证机制
mechanisms = plain login

告诉dovecot密码在sql数据库中
passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
}

和mail_location相似,当用户取邮件时会以日志的形式记录下来
userdb static {
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}

master部分将通过用户的数据库存信息把新的邮件保存在用户的邮箱中
socket listen {
    master {
        path = /var/run/dovecot/auth-master
        mode = 0600
        user = vmail
    }

    client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
    }
}
这部份需要自已定制:dovecot的LDA比postfix自带的LDA功能强大的多,它可设定配额,和邮件过滤,
protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = wxy1@wxy.com
    mail_plugins = cmusieve
    global_script_path = /home/vmail/globalsieverc

配置dovecot-sql.conf
/etc/dovecot/dovecot-sql.conf 
driver = mysql
connect = host=127.0.0.1 dbname=mail user=mailuser password=2007
default_pass_scheme = PLAIN
password_query = Select email as user, password FROM view_users Where user='%u';

改变dovecot.conf的权限,设只vmail 组的用户及root用名可以读取
$> chgrp vmail /etc/dovecot/dovecot.conf
$> chmod g+r /etc/dovecot/dovecot.conf


配置smtp验证(sasl)

$> postconf -e smtpd_sasl_type=dovecot
$> postconf -e smtpd_sasl_path=private/auth
$> postconf -e smtpd_sasl_auth_enable=yes
$> postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

九、配置webmail

ln -s /usr/share/squirrelmail /var/www/mail
查看 web server: Apache2 是否已启动:
netstat -an |grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

这时可以应该可以用http://IP/mail 访问webmail
如果你想个人的webmail界面是简体中文,请在输入邮箱及密码登录邮箱后,Options->Display Preferences->Language:->Chinese Simple。
如果想将webmail的界面默认为简体中文,请执行/etc/squirrelmail/conf.pl,输入10,可以看到如下界面:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Language preferences
1. Default Language       : en_US
2. Default Charset        : iso-8859-1
3. Enable lossy encoding : false

设置成类似:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Language preferences
1. Default Language       : zh_CN
2. Default Charset        : GB2312
3. Enable lossy encoding : false

重启web服务:
/etc/init.d/apache2 restart
Forcing reload of web server: Apache2.

再用http://IP/mail访问web mail,可以发现squirrelmail的默认语言已经变成了简体中文了。

注:squirrelmail支持用户修改密码、自动回复、来电提醒等相当多的扩展功能请至squirrelmail网站下载相应的插件安装包就可以了。http://www.squirrelmail.org

有不对之处请多指教!
posted @ 2010-06-22 13:25  木由水  阅读(2331)  评论(1编辑  收藏  举报