注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曹兆领的博客

有志者事竟成,破釜沉舟,百二秦关终属楚!

 
 
 

日志

 
 

BUNTU下安装Postfix+Mysql+courier邮件系统   

2009-02-27 13:29:09|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
BUNTU下安装Postfix+Mysql+courier邮件系统 

一. 安装

安装完UBUNTU7.04后,更新系统,各方面基本设置完成后安装:

sudo apt-get install apache2 php5 php5-mysql mysql-server
sudo apt-get install postfix postfix-mysql libsasl2 sasl2-bin libsasl2-modules-sql
sudo apt-get install courier-authdaemon courier-authlib-mysql courier-pop courier-imap

至此,所需软件全部安装完毕,下面将依次进行配置。

二. 配置

注意:下面配置文件的每一行结尾必须保证没有空格!
1、 配置sasl2
sudo gedit /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path: /var/run/courier/authdaemon/socket
2、 配置postfix
使用和apache一样的用户来读取邮件目录,因为apache用户为www,id:80,所以要注意/etc/postfix/main.cf中的用户id。
sudo mkdir -p /home/virtual  
sudo chown -R www-data:www-data /home/virtual
sudo gedit /etc/postfix/main.cf
在最后添加:
#======= BASE ==============
home_mailbox = maildir/
mydestination =
#======= MYSQL =============
virtual_gid_maps = static:33
virtual_mailbox_base = /home/virtual
virtual_uid_maps = static:33
virtual_minimum_uid = 33
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/virtual_mailbox_limit_maps.cf
virtual_mailbox_limit = 52428800
#======== SASL ================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated permit_auth_destination reject
smtpd_sasl_local_domain = $mydomain
smtpd_client_restrictions = permit_sasl_authenticated
 
从 上面的配置可以看出,有4个表保存在mysql数据库中,分别是virtual_alias(虚拟别名)、virtual_domains(虚拟域)、 virtual_mailbox_maps(虚拟邮箱映射)、和virtual_mailbox_limit(虚拟邮箱限额)。Postfix访问 mysql的特定表和字段分别由4个对应的配置文件设置。
cd /etc/postfix/
mkdir mysql
cd mysql
 
1、sudo gedit virtual_alias_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = alias
select_field = goto
where_field = address
 
2、sudo gedit virtual_domains_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = description
where_field = domain
 
3、sudo gedit virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
 
4、sudo gedit virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = quota
where_field = username
 
3、 配置courier-authdaemond
#chmod a+x /var/run/courier/authdaemon
#cd /etc/courier
#sudo gedit authdaemonrc
修改authmodulelist和authmodulelistorig,指定只使用mysql进行验证
authmodulelist="authmysql"
设置authmysqlrc,使authdaemond能够查询mysql,注意删除每行末尾的空格。
#sudo gedit authmysqlrc
 
MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          postfix
MYSQL_PORT              0
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
# DEFAULT_DOMAIN        example.com
MYSQL_UID_FIELD         '33'
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        '/home/virtual'
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
# MYSQL_QUOTA_FIELD     quota
 
4、 重起服务
sudo /etc/init.d/postfix restart
sudo /etc/init.d/courier-authdaemond restart
5、 配置postfixadmin
打开:http://sourceforge.net/projects/postfixadmin/下载最新版的postfixadmin
cd /var/www/
sudo tar -zxvf ~/Desktop/postfixadmin-2.1.0.tgz
sudo mv postfixadmin-2.1.0 postfixadmin
cd postfixadmin
mysql -uroot -p < DATABASE_MYSQL.TXT
cd /var/www/postfixadmin
sudo cp config.inc.php.sample config.inc.php
sudo gedit config.inc.php
$CONF['default_language'] = 'cn';
$CONF['admin_email'] = 'postmaster@example.com';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['quota'] = 'YES';
 
通过http://localhost/postfixadmin/setup.php查看是否安装成功。
进入http://localhot/postfixadmin/admin进入管理页面,建立虚拟域和用户。
观察/usr/local/virtual下是否出现对应的域名目录和用户目录。
注 意:如在postfixadmin中新建与本机域名相同的虚拟域,则有可能无法建立相应的域名和用户的文件夹。这种情况应通过mx记录解决。如邮件服务器 位于example.com上,则应指定postfix的域名为mail.example.com,再添加mx记录指向 mail.example.com,这样即可建立example.com虚拟域。
6、 配置squirrelmail
sudo apt-get install squirrelmail squirrelmail-locales
cd /etc/squirrelmail
sudo ./confi .pl
选择10. Languages
设置如下:
1. Default Language : zh_CN
2. Default Charset : UTF-8
保存退出
进入http://localhost/squirrelmail/测试邮箱。
 
注意:除了在authmysqlrc中DEFAULT_DOMAIN指定的域外,其他域用户登陆都需要输入完整的电子邮件地址。
  评论这张
 
阅读(343)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017