Apache james mailserver + Claros inTouch webmail


                Apache james mailserver + Claros inTouch webmail

准备:
    环境winxp + jdk1.6 + tomcat6.0.16
    apache james2.3 (邮件服务器)
    Claros inTouch2.1.war (WebMail界面程序)

安装:
    1、安装james邮件服务容器:james下载后直接解压后启动就可以了,
       对james_home\apps\james\SAR-INF\config.xml做修改。
   
    1.1:修改自己的邮件服务名,如同[email protected]   
1 <postmaster>[email protected]</postmaster>
2 <servernames autodetect="true" autodetectIP="true">
3     <servername>byzh.com</servername>
4 </servernames>   
    1.2:修改dns服务。
1<dnsserver>
2      <servers>        
3          <server>byzh.com</server>
4          <server>smtp.163.com</server>
5          <server>mail.126.com</server>
6      </servers>
7      <!-- 修改自动探测为false 如果为true 可能在开发时出现异常 -->
8      <autodiscover>false</autodiscover>
9      <authoritative>false</authoritative>
10      <maxcachesize>50000</maxcachesize>
11</dnsserver>   
    修改了dns,就要注释掉以下配置
1<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
2            <processor> relay-denied </processor>
3            <notice>550 - Requested action not taken: relaying denied</notice>
4</mailet>   
    并且,开启SMTP Server 身份验证:
1<authRequired>true</authRequired>
    1.3:修改远程管理。以便在cmd控制台中执行telnet byzh.com 4566命令。
1  <remotemanager enabled="true">
2       <port>4566</port>
3       <handler>
4          <helloName autodetect="true">myMailServer</helloName>
5          <administrator_accounts>
6             <account login="root" password="123456"/>
7          </administrator_accounts>
8          <connectiontimeout>60000</connectiontimeout>
9          <prompt>welcome to mt Sever&gt;</prompt>
10       </handler>
11 </remotemanager>
    1.4:修改pop3,stmp,nntp服务。  1 <pop3server enabled="true">
2       <port>110</port>
3       <handler>
4          <helloName autodetect="true">myMailServer</helloName>
5          <connectiontimeout>120000</connectiontimeout>
6       </handler>
7</pop3server>

8 <smtpserver enabled="true">
9       <port>25</port>
10       <handler>
11          <helloName autodetect="true">myMailServer</helloName>
12          <connectiontimeout>360000</connectiontimeout>
13          <authRequired>true</authRequired>
14           <authorizedAddresses>127.0.0.0/8</authorizedAddresses>
15          <maxmessagesize>0</maxmessagesize>
16       </handler>
17 </smtpserver>

18 <nntpserver enabled="true">
19       <port>119</port>
20       <handler>
21          <helloName autodetect="true">myMailServer</helloName>
22          <connectiontimeout>120000</connectiontimeout>
23          <authRequired>false</authRequired>
24       </handler>
25 </nntpserver>   
    1.5:James邮件用户的用户信息默认保存在apps\james\var\users目录下,
           通过修改配置文件apps\james\SAR-INF\config.xml,可以把用户信息保存到数据库中,
           配置方法如下

    打开config.xml,找到<users-store>这一项,此面默认的内容为:
1 <repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
2          <destination URL="file://var/users/"/>
3 </repository>
    需要修改为:


1 <repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository"
              destinationURL="db://maildb/users">
2         <sqlFile>file://conf/sqlResources.xml</sqlFile>
3 </repository>


    通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。

    仍然是config.xml,找到<data-sources>项,注意先要创建好java_mail数据库,把此项内容修改为:


1 <data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
2          <driver>com.mysql.jdbc.Driver</driver>
3          <dburl>jdbc:mysql://127.0.0.1:3306/java_mail?useUnicode=true&amp;characterEncoding=UTF-8</dburl>
4          <user>root</user>
5          <password>root</password>
6          <max>20</max>
7 </data-source>
     <driver>是指MySQL的JDBC驱动,<dburl>指数据库的访问路径,IP后的mail即MySQL中新建数据库名,接下来是用户名、密码及最大连接数。

    至此,数据库配置完成,启动James,若正常无误,请通过telnet添加一个新用户,比如adduser holen 123456,然后检查MySQL中的mail数据库,下面将有一个表users,这是James根据james_home\apps\james\conf的内容创建的。

    通过以上配置,James的用户信息就可以保存在数据库中了。


    1.6:修改c:/windows/system32/drivers/etc/hosts文件,增加一个地址映射。
1 #192.168.0.100 byzh.com
2  127.0.0.1     byzh.com
    1.8:执行james_home\bin\run.bat,启动james2.3服务。

    1.8:进入命令模式,执行telnet byzh.com 4566,连接james2.3服务。

    1.9:以管理员省份登录james2.3服务,用户就是1.3节配置的root/123456。
    1.9.1:添加2个用户,a/123456,b/123456。


    2:安装claros inTouch,下载claros-intouch-2.1,把intouch2.war拷贝到tomcat中。配置tomcat_home\webapps\intouch2\WEB-INF\config\config.xml。
<?xml version="1.0" encoding="UTF-8"?>
<claros-config>

    <common-params>
        <charset>utf-8</charset>
        <server-timezone>Europe/Istanbul</server-timezone>
        <tmp-dir>/tmp</tmp-dir>
        <max-attachment-size>5</max-attachment-size>
        <max-mail-size>10</max-mail-size>
        <title>Claros inTouch 2.1</title>
        <spam-check-enabled>false</spam-check-enabled>
        <default-lang>zh_cn_utf8</default-lang>
        <rss-feed>http://rss.cnn.com/rss/cnn_topstories.rss</rss-feed>
    </common-params>

    <chat>
        <default-domain>claros.org</default-domain>
        <msn-transport>msn.claros.org</msn-transport>
        <yahoo-transport>yahoo.claros.org</yahoo-transport>
        <icq-transport>icq.claros.org</icq-transport>
        <aol-transport>aol.claros.org</aol-transport>
    </chat>

    <servers>
        <server>
            <shortname>byzh.com</shortname>
           
            <!-- your imap/pop3 server ip/dns
            <fetch-server-port>143</fetch-server-port>
            <fetch-protocol>imap</fetch-protocol>
            -->
            <fetch-server>byzh.com</fetch-server>
            <fetch-server-port>110</fetch-server-port>
            <fetch-protocol>pop3</fetch-protocol>
            <fetch-ssl>false</fetch-ssl>

            <smtp-server>byzh.com</smtp-server>
            <smtp-server-port>25</smtp-server-port>
            <smtp-authenticated>true</smtp-authenticated>
            <smtp-ssl>false</smtp-ssl>
           
            <!-- IMAP only: if you use courier or cyrus you'll need to set the following to "INBOX."
            (with the dot(.) but omit the quotes) -->
            <folder-namespace></folder-namespace>
        </server>
    </servers>
    
    <db-config>
        <db>
            <!-- do not change the term file -->
            <id>file</id>
            <database>jdbc:mysql://127.0.0.1:3306/java_mail?useUnicode=true&amp;characterEncoding=UTF-8</database>
            <driver>com.mysql.jdbc.Driver</driver>
            <login>root</login>
            <password>root</password>
        </db>
    </db-config>

</claros-config>   
    注意点:安装路径不能带空格,不然会找不到config.xml。
    正常情况下就可以登录了,数据库使用了是MySQL。

    2.1:同样在java_mail数据库中创建inTouch webmail需要的表,sql如下:   1 CREATE TABLE `CALENDAR_OBJECTS` (
  2   `ID` bigint(20) unsigned NOT NULL auto_increment,
  3   `USERNAME` varchar(255) NOT NULL default '',
  4   `RECORD_DATE` timestamp NOT NULL,
  5   `REPEAT_TYPE` int(11) NOT NULL default '0',
  6   `CATEGORY` varchar(255) NOT NULL default '',
  7   `DESCRIPTION` text NOT NULL,
  8   `REMINDER_DAYS` int(11) NOT NULL default '0',
  9   PRIMARY KEY  (`ID`)
10 ) ENGINE= InnoDB default charset=utf8;
11
12 # Dump of table CONTACTS
13 # ------------------------------------------------------------
14
15 CREATE TABLE `CONTACTS` (
16   `ID` bigint(20) unsigned NOT NULL auto_increment,
17   `USERNAME` varchar(255) default '',
18   `FIRST_NAME` varchar(100) NOT NULL default '',
19   `MIDDLE_NAME` varchar(100) default '',
20   `LAST_NAME` varchar(100) NOT NULL default '',
21   `TITLE` varchar(50) default '',
22   `SEX` varchar(10) default '',
23   `GSM_NO_PRIMARY` varchar(30) default '',
24   `GSM_NO_ALTERNATE` varchar(30) default '',
25   `EMAIL_PRIMARY` varchar(255) default '',
26   `EMAIL_ALTERNATE` varchar(255) default '',
27   `WEB_PAGE` varchar(255) default '',
28   `PERSONAL_NOTE` text,
29   `SPOUSE_NAME` varchar(255) default '',
30   `NICK_NAME` varchar(50) default '',
31   `HOME_ADDRESS` text,
32   `HOME_CITY` varchar(255) default '',
33   `HOME_PROVINCE` varchar(255) default '',
34   `HOME_ZIP` varchar(5) default '',
35   `HOME_COUNTRY` varchar(100) default '',
36   `HOME_PHONE` varchar(30) default '',
37   `HOME_FAKS` varchar(30) default '',
38   `WORK_COMPANY` varchar(100) default '',
39   `WORK_JOB_TITLE` varchar(100) default '',
40   `WORK_DEPARTMENT` varchar(100) default '',
41   `WORK_OFFICE` varchar(100) default '',
42   `WORK_PROFESSION` varchar(100) default '',
43   `WORK_MANAGER_NAME` varchar(255) default '',
44   `WORK_ASSISTANT_NAME` varchar(255) default '',
45   `WORK_ADDRESS` text,
46   `WORK_CITY` varchar(255) default '',
47   `WORK_PROVINCE` varchar(255) default '',
48   `WORK_ZIP` varchar(5) default '',
49   `WORK_COUNTRY` varchar(100) default '',
50   `WORK_PHONE` varchar(30) default '',
51   `WORK_FAKS` varchar(30) default '',
52   `BIRTH_DAY` varchar(2) default NULL,
53   `ANNIVERSARY_DAY` varchar(2) default NULL,
54   `BIRTH_MONTH` varchar(2) default NULL,
55   `ANNIVERSARY_MONTH` varchar(2) default NULL,
56   PRIMARY KEY  (`ID`)
57 ) ENGINE= InnoDB default charset=utf8;
58
59 # Dump of table CONTACT_GROUPS
60 # ------------------------------------------------------------
61
62 CREATE TABLE `CONTACT_GROUPS` (
63   `ID` bigint(20) unsigned NOT NULL auto_increment,
64   `USERNAME` varchar(255) NOT NULL default '',
65   `SHORT_NAME` varchar(100) default '',
66   `DESCRIPTION` varchar(255) default '',
67   PRIMARY KEY  (`ID`)
68 ) ENGINE= InnoDB default charset=utf8;
69
70 # Dump of table CONTACT_GROUP_OBJECTS
71 # ------------------------------------------------------------
72
73 CREATE TABLE `CONTACT_GROUP_OBJECTS` (
74   `ID` bigint(20) unsigned NOT NULL auto_increment,
75   `USERNAME` varchar(255) NOT NULL default '',
76   `GROUP_ID` bigint(20) NOT NULL default '0',
77   `CONTACT_ID` bigint(20) NOT NULL default '0',
78   PRIMARY KEY  (`ID`)
79 ) ENGINE= InnoDB default charset=utf8;
80
81
82
83 # Dump of table FOLDER_DB_OBJECTS
84 # ------------------------------------------------------------
85
86 CREATE TABLE `FOLDER_DB_OBJECTS` (
87   `ID` bigint(20) unsigned NOT NULL auto_increment,
88   `USERNAME` varchar(255) default NULL,
89   `PARENT_ID` bigint(20) default '0',
90   `FOLDER_NAME` varchar(100) NOT NULL default '',
91   `FOLDER_TYPE` int(10) unsigned NOT NULL default '4',
92   PRIMARY KEY  (`ID`),
93   KEY `USERNAME` (`USERNAME`)
94 ) ENGINE= InnoDB default charset=utf8;
95
96 # Dump of table MSG_DB_OBJECTS
97 # ------------------------------------------------------------
98
99 CREATE TABLE `MSG_DB_OBJECTS` (
100   `ID` bigint(20) unsigned NOT NULL auto_increment,
101   `USERNAME` varchar(255) NOT NULL default '',
102   `FOLDER_ID` bigint(20) unsigned NOT NULL default '0',
103   `UNIQUE_ID` varchar(100) NOT NULL default '',
104   `UNREAD` tinyint(1) default '0',
105   `MSG_SIZE` bigint(20) unsigned NOT NULL default '0',
106   `EMAIL` longblob,
107   PRIMARY KEY  (`ID`)
108 ) ENGINE= InnoDB default charset=utf8;
109
110
111 # Dump of table MSG_RULES
112 # ------------------------------------------------------------
113
114 CREATE TABLE `MSG_RULES` (
115   `ID` bigint(20) unsigned NOT NULL auto_increment,
116   `USERNAME` varchar(255) NOT NULL default '',
117   `PORTION` varchar(100) default NULL,
118   `RULE_CONDITION` varchar(30) default NULL,
119   `KEYWORD` varchar(255) default NULL,
120   `RULE_ACTION` varchar(30) default NULL,
121   `DESTINATION` varchar(100) default NULL,
122   PRIMARY KEY  (`ID`),
123   KEY `USERNAME` (`USERNAME`)
124 ) ENGINE= InnoDB default charset=utf8;
125
126 # Dump of table NOTES
127 # ------------------------------------------------------------
128
129 CREATE TABLE `NOTES` (
130   `ID` bigint(20) unsigned NOT NULL auto_increment,
131   `USERNAME` varchar(255) NOT NULL default '',
132   `FOLDER_ID` bigint(20) NOT NULL default '0',
133   `NOTE_CONTENT` text,
134   `POS_LEFT` int(11) default NULL,
135   `POS_TOP` int(11) default NULL,
136   `POS_WIDTH` int(11) default NULL,
137   `POS_HEIGHT` int(11) default NULL,
138   `NOTE_COLOR` varchar(20) default NULL,
139   `NOTE_BAR_COLOR` varchar(20) default NULL,
140   `NOTE_BORDER_COLOR` varchar(20) default NULL,
141   `NOTE_DATE` datetime default NULL,
142   PRIMARY KEY  (`ID`)
143 ) ENGINE= InnoDB default charset=utf8;
144
145 # Dump of table NOTES_FOLDERS
146 # ------------------------------------------------------------
147
148 CREATE TABLE `NOTES_FOLDERS` (
149   `ID` bigint(20) unsigned NOT NULL auto_increment,
150   `USERNAME` varchar(255) NOT NULL default '',
151   `FOLDER_NAME` varchar(255) NOT NULL default '',
152   PRIMARY KEY  (`ID`)
153 ) ENGINE= InnoDB default charset=utf8;
154
155 # Dump of table PREFERENCES
156 # ------------------------------------------------------------
157
158 CREATE TABLE `PREFERENCES` (
159   `ID` bigint(20) unsigned NOT NULL auto_increment,
160   `USERNAME` varchar(255) NOT NULL,
161   `PREF_KEY` varchar(255) NOT NULL,
162   `PREF_VALUE` varchar(255) NOT NULL,
163   PRIMARY KEY  (`ID`)
164 ) ENGINE= InnoDB default charset=utf8;
165
166 # Dump of table QUEUE
167 # ------------------------------------------------------------
168
169 CREATE TABLE `QUEUE` (
170   `ID` bigint(20) unsigned NOT NULL auto_increment,
171   `MSG_FROM` varchar(255) NOT NULL default '',
172   `MSG_TO` varchar(255) NOT NULL,
173   `MSG_TIME` timestamp NOT NULL,
174   `MSG_BODY` longtext NOT NULL,
175   `MSG_DIRECTION` varchar(3) NOT NULL,
176   `DELIVERED` int(11) NOT NULL default '0',
177   PRIMARY KEY  (`ID`)
178 ) ENGINE= InnoDB default charset=utf8;
179
180 # Dump of table USER_PREFERENCES
181 # ------------------------------------------------------------
182
183 CREATE TABLE `USER_PREFERENCES` (
184   `ID` bigint(20) unsigned NOT NULL auto_increment,
185   `USERNAME` varchar(255) NOT NULL default '',
186   `KEYWORD` varchar(255) NOT NULL default '',
187   `PREF_VALUE` varchar(255) NOT NULL default '',
188   PRIMARY KEY  (`ID`)
189 ) ENGINE= InnoDB default charset=utf8;  
    2.2:启动tomcat,打开浏览器,输入http://localhost:8080/intouch2/index.jsp
    2.3:登录inTouch WebMail,用户b/123456。

    如果不能登录,可以查看log文件夹底下的log文件,查看出错信息。

你可能感兴趣的:(apache,tomcat,mysql,jdbc,配置管理)