
我自己使用的是postfix作为MTA,导出语句为:
mysql>select username from extmail.mailbox into outfile '/tmp/users.txt'
希望对你有帮助!
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
1 整个 extmail邮件系统,是由多个软件构成的:
软件名称 功能 (注意:没有列出反垃圾邮件软件与杀毒软件)
ExtMan Web帐户管理后台(含mailgraph_ext 图形日志分析)
ExtMail WebMail(perl 程序)
Apache Web服务器(MUA 通过浏览器收发邮件)
Postfix SMTP服务器,邮件传输代理(MTA)
Maildrop 邮件投递代理(MDA)
Courier-imap IMAP和POP3 服务器
Cyrus-sasl2 标准的SASL实现库,可以支持Courier Cyrus SMTP认证库
Courier-authlib 负责courier-imap,maildrop的认证 Courier 数据认证库(mysql)
MySQL数据库,储存虚拟(域|用户|别名)等信息.
2 确定postfix 支持的smtp认证方式,与支持的查询表(必须包含mysql格式)
smtp 认证方式
postconf -a
cyrus (sasl库)
dovecot
支持的查询表
postconf -m
btree
cidr
environ
hash
ldap
mysql (包含mysql)
nis
pcre
proxy
regexp
static
tcp
unix
注意: redhat/centos 自带的postfix不支持mysql方式的查询表,所以你可能需要以源码的方式重新安装postfix 并且开启mysql支持!!!
3 extmail 发信,收信,(web登陆)认证逻辑图
+++++++++++++++++++++++++++++++++++++++++++++++++
+ smtp/25 + po3/110+ http/80+
+ postfix + courier-imap + apache +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ cyrus-sasl2 +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ courier-authlib +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ mysql +
+++++++++++++++++++++++++++++++++++++++++++++++++
3.1 smtp认证流程
smtp/25
postfix
| <-- smtp 认证
cyrus-sasl2
| <-- smtpd.conf 配置文档(设置了authdaemond的Unix套接字的路径)
courier-authlib
| <-- authmysqlrc 配置文档(设置了mysql相关信息)
mysql
| -- I:储存虚拟(域|用户|别名)等信息.
3.2 smtp认证 相关的配置文档
postfix
10.0.100.88 [~]$ rpm -qf /usr/lib64/sasl2/smtpd.conf
postfix-2.6.2-5hzq
10.0.100.88 [~]$ cat /usr/lib64/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
---------------------------------------------------------------
pwcheck_method SASL 库 auxprop(默认值)
(描述:空格分隔开的用来效验密码的机制列表,值可能是 sasl_checkpass,auxprop,
saslauthd,pwcheck,authdaemond【如果编译时添加了 --with-authdaemond 】
mech_list SASL 库 使用所有有效插件
(描述:空格分隔开的允许使用的机制的列表,比如:'plain otp'。用来在安装的插件
中限制出一个可用机制的子集。)
authdaemond_path SASL 库 /dev/null(默认值)
(描述:Courier-authlib 的 authdaemond 的 Unix 套接字的路径。仅当 pwcheck_method 设
置为 authdaemond 时可用。)
-------------------------------------------------------------------
courier-authlib
10.0.100.88 [~]$ rpm -qf /var/spool/authdaemon/socket
courier-authlib-0.62.4-2hzq
10.0.100.88 [~]$ cat /etc/authlib/authmysqlrc
MYSQL_SERVERlocalhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD xmall.com
MYSQL_SOCKET/var/lib/mysql/mysql.sock
MYSQL_PORT 3306
...................................
4 了解 postfix 的查询表
postfix 有许多的重要参数(main.cf)都需要能够查询其对应关系,将所有的对应关系保存在另外一个文件 "查询表"
查询表格式:
查询表的原始数据来自简单的文本文件,文件的每一行定义一组 "key_value" 对应关系,key 与 value
以空白隔开,例如:
cat /etc/postfix/local_in_senders
tech@xmall.com local_in_only
it@xmall.comlocal_in_only
postmap命令创建查询表的数据库文件
postmap /etc/postfix/local_in_senders
file /etc/postfix/local_in_senders.db
/etc/postfix/local_in_senders.db: Berkeley DB (Hash, version 8, native byte-order)
postfix 默认的查询表数据格式为hash
postconf | grep 'default_database_type'
default_database_type = hash
当将查询表赋值给相关参数时,则必须指出查询表的数据库类型,例如:
postconf | grep 'hash:/'
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, nis:mail.aliases
查询表的特例-别名文件
由于别名文件的格式不同于postfix 其它的postfix 查询表,所以不能使用postmap 创建别名的数据库文件,而应该使用postalias/newalias
别名文件位置:alias_maps = hash:/etc/aliases, nis:mail.aliases
别名文件格式:
grep -vE '(^$|^#)' /etc/aliases | head -n 3
mailer-daemon: postmaster
postmaster: root
bin:root
daemon: root
5 linux系统 用 32位 还是 64位?
如果邮件比较少,邮件 *** 作系统压力不大的话,32位或者64位都可以,只不过部署extmail(源码)时要区分一下,比如:
i386
/usr/lib/sasl2/smtpd.conf
/usr/lib/mysql/
x86_64
/usr/lib64/sasl2/smtpd.conf
/usr/lib64/mysql/
6 linux系统硬盘分区
建议 /var /home 单独分区,原因有两个
1 因为extman 与 extmail都是以 /home/domains作为基础目录
2 /var/log/maillog 邮件日志; /var/spool/postfix 邮件队列
10.0.100.88 [xmall.com]$ pwd
/home/domains/xmall.com
10.0.100.88 [xmall.com]$ du -sh *
120Kzm1
436Mzm2
10.0.100.88 [xmall.com]$ ll
total 8
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm1
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm2
7 安装依赖rpm包 (这里使用了本地cdrom源,如果你不是本地yum源,请直接yum install 后边的rpm包)
yum --disablerepo=\* --enablerepo=c5-media install httpd php php-mysql mysql mysql-server mysql-devel openssl-devel perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)