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

摘要:
系统和软件安装如下:1.debian4.02.Postfix(MTA)提供smtp功能3.Postfix mysql提供Postfix到mysql映射支持4.mysql用户数据库存储5.dovecot(POP3+IMAP+ASL)提供POP3+IMAP+(smtpsasl)6.amavisd newlibclass dbi mysql perlspamassassinclamav守护进程
系统和软件安装如下:
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

有不对之处请多指教!

免责声明:文章转载自《debian+postfix+dovecot+squirrelmail安装配置笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇习题解答chapter02open ~/.bash_profile下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下高并发socket最大连接数各种限制的调优

1、修改用户进程可打开文件数限制  在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [s...

如何在 Centos7 中修改yum源(三种方法)

(一)yum源概述 yum需要一个yum库,也就是yum源。默认情况下,CentOS就有一个yum源。在/etc/yum.repos.d/目录下有一些默认的配置文件(可以将这些文件移到/opt下,或者直接在yum.repos.d/下重命名)。 首先要找一个yum库(源),然后确保本地有一个客户端(yum这个命令就是客户端),由yum程序去连接服务器。连接的...

在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器

配置域名 在阿里云找到主域名   进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了。 检查nginx安装 首先检查服务器是否安装nginx:   find / -name 'nginx.conf'  -ls   或者   ps -ef|grep nginx   安装ng...

Linux下NFS配置及远程挂载

NFS配置及远程挂载 NFS简介  NFS是Network File System的简写,即网络文件系统。NFS最早是由 Sun Microsystems 公司开发,并于1984年推出。NFS 是一种可分散式的网络文件系统,可以通过网络(一个局域网)使不同的机器、不同的操作系统,能够共享目录和文件,使客户端能通过网络访问并分享文件到位于服务端的磁盘中。NF...

Ubuntu 20.04 设置 DNS 的方法

如题,Ubuntu 20.04 LTS 版本安装之后,发现偶尔报错 Temporary failure in name resolution,搜索一番之后大部分意见认为是系统的DNS设置不全面,建议重新设置一下DNS。 按照网上的文章,直接修改的是/etc/resolv.conf ,原文内容如下: nameserver 127.0.0.53option...

Rhel6和rhel7的主要区别

内核版本 Rhel6.8的内核版本为2.6.32-642,rhel7使用的是3.10.x-x系列,最新的rhel7.3使用的是3.10.0-514。 文件系统的差别 Rhel7默认使用xfs文件系统,rhel6默认为ext4文件系统,但从rhel6.8起开始支持xfs系统。 设置默认启动级别 Rhel6:vim /etc/inittab 将末行的id:3:...