分类: LINUX
2011-10-28 17:26:44
postfix+mysql
一 安装与设置mysql
#yum install mysql mysql-server -y
#service mysqld start
#mysqladmin -u root password linux
#service httpd start
使用phpMyAdmin软件登录,并建立新数据库和新表
数据库名:linuxsql
数据表名:linuxtable
拥有字段: username VARCHAR 25 //指定用户名
password VARCHAR 25 //指定密码
domain VARCHAR 30 //指定域
mailbox VARCHAR 30 //指定邮箱
点击执行,保存
点击linuxtable,点击右上方的“插入”,在该表中插入数据如下
username
password user
domain linux.org
mailbox linux.org/user/ 加“/”表明邮箱为一个目录;不加,表明邮箱为一个文件
如此,数据库方面已经建立好了哟!
二 建立虚拟用户
# mysql -uroot -plinux
>grant all on linuxsql.* to identified by 'vmail' ; //设置vmail虚拟用户及其密码
>flush privileges;
>quit ;
以上即为虚拟用户授予管理linuxsql数据库的权限
登录mysql,检测以下
# mysql -uvmail -pvmail
>show databases;
>use linuxsql;
>show tables ;
>select * from linuxtable;
>quit;
三 设置postfix
# useradd -u 600 -s /bin/false email //建立一个用户
#postconf -n //查看已有的postfix设置
链接mysql数据库设置
#postconf -e virtual_mailbox_base=/home/email/ //虚拟邮箱放置目录
#postconf -e virtual_uid_maps=static:600
#postconf -e virtual_gid_maps=static:600
以上设置,均与email用户相关,明白为何要建立email用户了吧!!!
#postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-alias.cf
#postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-domains.cf
#postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-mailboxs.cf
注:此处的mysql-alias.cf mysql-domains.cf mysql-mailboxs.cf 均为自定义,用户可取其他名称,但需以“.cf”结尾
#postconf -n //看看是否加入了设置
现在我们就去创建并设置mysql-alias.cf mysql-domains.cf mysql-mailboxs.cf的内容吧!
#cd /etc/postfix
#vi mysql-alias.cf
内容如下:
hosts = localhost //此为默认值,可省略!
user = vmail //使用虚拟用户的身份进行对数据库及数据表的管理
password = vmail //这就是设置虚拟用户的原因,明白了吧!
dbname = linuxsql //指定可查看的数据库
table = linuxtable //指定该库下可查看的数据表
select_field = username //查看的数据表中的字段
where_field = username
#vi mysql-domains.cf
内容如下:
hosts = localhost
user = vmail
password = vmail
dbname = linuxsql
table = linuxtable
select_field = domain
where_field = domain
#vi mysql-mailboxs.cf
内容如下:
hosts = localhost
user = vmail
password = vmail
dbname = linuxsql
table = linuxtable
select_field = mailbox
where_field = username
如此,设置完毕了,重启服务,发邮件检测一下下
#/etc/init.d/postfix restart
重启后,检测以下设置文件是否正确
#postmap -q “” mysql:/etc/postfix/mysql-alias.cf
#postmap -q “” mysql:/etc/postfix/mysql-mailboxs.cf
linux.org/user/
#postmap -q “linux.org” mysql:/etc/postfix/mysql-domains.cf
linux.org
以上显示的,均为设置文件中指定的查询字段
没错了,去邮箱目录看看!
# cd /home/email/
#ls
发现为空,怎么回事啊?原来数据库中的用户并没有接收的邮件,系统并为给数据库中的用户建立邮箱,当用户有接收的邮件时,系统会自动建立其邮箱.那我们就给数据库用户发封邮件吧!
# mail //注:此处对应数据库中的username字段
Subject: welcome
hello, i did it!
. //符号“ . ”表示邮件结束,英文中的句号
EOT
接下来,让我们到虚拟用户目录中看看吧!
# ls
linux.org
#cd linux.org
user
#cd user
#ls
cur new tmp
# cd new
#ls //邮件即放于new目录中,看到了吗?打开自己看看吧!
1319746109.Vfd01I26M854651.desktop20.example.com
别忘了,还可以想数据表中继续添加数据哦!!!