This repository has been archived by the owner on Aug 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
176 lines (153 loc) · 7.35 KB
/
README
1
2
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
166
167
168
169
170
171
172
173
174
175
本文提供有关gWebmail的相关说明
by gtth, 最后修改时间: 2001-01-04
gWebmail由gtth开发.
可通过信箱 [email protected] 与我联系.
有关gWebmail的最新进展可从 http://gtth.org/ 获得.
gWebmail是自由软件, 你可以遵照自由软件基金会发布的GNU通用公共许可证(GPL)条款
来修改和重新发布这一软件. 发布这一软件的目的是希望它有用, 但没有任何担保.
甚至没有适合特定目的的隐含的担保. 更详细的情况请参阅GNU通用公共许可证.
gWebmail是免费的, 并提供全部源程序, 你可以根据你的需要进行修改和完善,
如果有相关技术问题可与gtth联系, 你会得到尽可能的帮助. 如果你对gWebmail
有较好的修改或完善, 请你与gtth联系, 以使您的成就可以共享.
!!!!!!!!!!!!!!!!!!!!! 最新特征 !!!!!!!!!!!!!!!!!!!!!!!!!!!
1. 支持多域名环境,可同时支撑不同域名用户的使用
2. 使用MySQL进行用户管理,不使用/etc/passwd文件,所以理论上
对最大用户数没有限制
3. 支持页面模板,使界面和程序分离,可动态修改界面
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
一. 运行环境及需求
1. 平台: Linux 测试环境版本为 Redhat Linux 6.2 Kernel 2.2.18
2. 邮件服务器: Sendmail 8.10.1 (此版本的gWebmail仅支持8.10.1)
3. WWW服务器: Apache 测试环境版本为 1.3.12
4. 数据库: MySQL 测试环境版本为 3.23.32
5. POP3服务: in.pop3d的gt修订版 (用户验证使用数据库,而非/etc/shadow)
6. DNS服务: 测试环境版本为 8.2.2
二. 程序说明
1. gWebmail分四部分: CGI部分, POP3修订, 后台程序, 及其它文件
2. 除一部分页面和页面模板用HTML编写外, 其它均用C语言编写
3. bkrun 是后台进程, 用于删除垃圾签名和检查邮箱尺寸
4. 文件说明:
wm/README 本文件, 罗列安装说明及其它
wm/BUGLIST 缺陷列表, 罗列现存的缺陷
wm/CHANGLOG 修改日志, 罗列各版本修改内容
wm/db.sql 数据库表结构安装脚本
wm/*.html HTML文件
wm/sendmail-8.10.1.wm.patch Sendmail+MySQL补丁
wm/mail.conf Sendmail+MySQL的配置文件(范例)
wm/signature 邮件签名档
wm/cgi/* CGI源程序
wm/new_pop3d/* in.pop3d的gt修订版源程序
wm/bkrun/* 后台进程源程序
wm/template/*.html HTML模板文件
wm/images/* 图片
wm/DNS/* 测试环境的DNS配置文件(范例)
三. 安装说明
1. 按运行环境要求建立基本环境: Linux , Apache, MySQL, BIND
2. Sendmail 需加入 Sendmail+MySQL 补丁. 安装包中的补丁只适用于 Sendmail 8.10.1,
现在暂时不支持其它版本的 Sendmail. 具体打补丁过程如下.
Sendmail 8.10.1 的安装包为 sendmail.8.10.1.tar.gz
假设解包在/usr/local/src目录下,具体方法如下(要求以root身份执行):
cp -f sendmail.8.10.1.tar.gz /usr/local/src/
cp -f sendmail-8.10.1.wm.patch /usr/local/src/
cd /usr/local/src
tar xvfz sendmail.8.10.1.tar.gz
patch -p0 < sendmail-8.10.1.wm.patch
cd sendmail-8.10.1
./Build
此时开始编译,以后的安装过程与标准安装过程相同,此处不再提及.
另外,需用 Sendmail 包里的 mail.local 覆盖系统自带的 mail.local,命令如下:
cp /usr/local/src/sendmail-8.10.1/obj.Linux.2.2.x.ix86/mail.local/mail.local\
/usr/bin/
(一般 mail.local 放在 /usr/bin 目录下)
3. 安装完 Sendmail 后,除了传统的 Sendmail 设置外,还需对 sendmail.cf 文件进行修改
以支持 Sendmail+MySQL 和多域名支持.修改如下:
a)将本地 mailer 改为 mail.local (缺省为 procmail)
打开 sendmail.cf,找到 Mlocal,如下
Mlocal, P=/usr/bin/procmail, ...
...
A=procmail -Y -a $h -d $u
改为
Mlocal, P=/usr/bin/mail.local, ...
...
A=mail.local -d $u
b)找到 Fw/etc/sendmail.cw,在其下以行加入
Qw -Hlocalhost -Dwebmail -Tdoamins
这样可以动态加入新的域名,而不用每次都修改 sendmail.cw
c)加入宏定义 domainalias
Kdomainalias mysql -Dwebmail -Mdomainalias -Laddress -Ralias
d)修改规则S98,找到S98,将旧的规则注释掉(在行首加#即可).然后加入新的规则.
如下:
S98
R$+ < $+ . > $1 < $2 >
R$+ < $+ > $: < > $(domainalias $1$2 $)
R< > $+ @ $* $: < $1 > $(domainalias * @ $2 $)
R< $+ > * $* $: < > $1 $2
R < $+ > $+ $: < > $2
R< > $* $: $>3 $1
e)具体范例可参看本安装包中的sendmail.cf
4. 修改 Sendmail+MySQL 配置文件 wm/mail.conf 并拷到 /etc/mail/ 目录下
mail.conf项目说明:
MysqlHost localhost /* MySQL 主机地址 */
MysqlUsername root /* 登录 MySQL 的用户名 */
MysqlPassword /* 登录口令(此处表示无口令) */
其它项目不要修改
5. 建立数据库和表结构, 表结构说明在 wm/db.sql 文件里, 使用如下命令可进行
自动建库, 建表:
mysql -u your_db_login_name -p < db.sql
6. 将你的域名加入表domains中,例如我的测试环境中域名为gtth.org和gtth.net,
则:
insert into domains values ('gtth.org');
insert into domains values ('gtth.net');
如果你的主机不是多域名,只加入一个域名,也就是你的默认域名就可以了.
如果是多域名主机,当然还要修改DNS配置,这里就不详细描述,可参看有关书籍
或资料,也可参考本安装包中提供的DNS配置范例(wm/DNS/db.*).另外,因条件
所限,我只测试了单机条件下的多域名支持.
7. 修改 wm/cgi/db.h, wm/bkrun/db.h 和 wm/new_pop3d/db.h, 使有关数据库
的常量设置正确,一般要修改的db.h中常量设置如下:
#define DEF_HOST_NAME "localhost" /* MySQL的地址 */
#define DEF_USER_NAME "root" /* 登录名 */
#define DEF_PASSWORD "" /* 登录口令(此处表示无口令) */
#define DEF_DB_NAME "webmail" /* 登录的数据库 */
8. 修改 wm/cgi/mail_sub.h 和 wm/bkrun/mail_sub.h, 使有关SMTP和POP3的常量设置正确
一般要修改的mail_sub.h中常量设置如下:
#define POP3_HOST "localhost" /* POP3服务的地址 */
9. 修改 wm/cgi/Makefile 里的 CGI-BIN_PATH, 使其指向正确的 cgi-bin 路径
修改 wm/cgi/Makefile 里的 HTDOCS_PATH, 使其指向正确的 htdocs 路径
10. 以root身份运行 wm/make
11. 以root身份运行 wm/make install
12. 确定 /etc/inet.conf 中 pop3 服务已打开, 且pop3d为 /usr/sbin/in.pop3d
13. 如果一切顺利, 那就可以从 http://yoursite/ 注册和登录了
四. FAQ
1. 如果手工安装 in.pop3d,不要忘记创建pop3的临时文件目录.
目录路径为: /usr/local/temp/pop, 否则登录会出问题
2. 如果你的平台还未安装 pop3服务,则要在 /etc/inetd.conf 文件里加入一行如下:
pop-3 stream tcp nowait root /usr/sbin/tcpd in.pop3d
(参考平台为Red Hat Linux 6.2)
3. 如果安装完成后,在登录时报告"数据库出错",则要检查 db.h,正确设置与 MySQL
有关的常量.注意!!:文件 wm/cgi/db.h,wm/new_pop3d/db.h,wm/bkrun/db.h 中的
设置要保证一致.
4. 如果安装完成后,在登录时报告"邮件服务器出错",则要检查mail_sub.h,正确
设置与 pop3 服务有关的常量.注意!!:文件 wm/cgi/mail_sub.h,wm/bkrun/mail_sub.h
中的设置要保证一致.
5. 如果在编译或登录时,提示不能定位与 MySQL 有关的库(一般查看日志文件
/var/log/message 可以看到出错信息),可以将这些库文件从MySQL的安装
目录拷到/lib中,就可.
6. 在编译Sendmail时可能会提示无法找到MySQL相关头文件或库文件,建议在编译
Sendmail 前把 MySQL 的头文件拷入 /usr/local/include 中,把 MySQL 的库
文件拷到 /usr/local/lib 中,这样可以免除编译过程中的一些麻烦.
7. 如果要对外提供 POP3 服务,登录时要注意.因为 gWebmail 支持多域名,所以
POP3的登录名要将域名写上,格式为,用点('.')代替@.例如用户地址为 [email protected],
则登录名为 test.gtth.org
五. 其它
如果有技术问题或发现bug, 请与我联系.由于在下能力有限,所以不免有失误失职之处,
还请海涵.gWebmail自首次发布至今已得到许多网友的支持和建议,在下在此深表谢意.
另外,因为我很忙,所以gWebmail一直处在发展缓慢的状态中,希望有为之士
能跳出来一起合作.现在需继续的工作:
1.文档的完善和维护
2.程序的全面测试
3.程序功能的完善
4.进一步开发的可行性和功能需求
当然,如果您有更好的项目也可通知我(不限于只作CGI呦).
+++++++++++++++++++++++++++++++++++
http://gtth.org/