首页.1

Powered By Gisun http://www.gisun.com

电话：010-82356575/76/77 传真：010-82356575-6004

北京春笛网络信息技术服务有限公司

中国·北京市海淀区知春路23号

863软件园量子银座903

www.mailer.com.cn

著作权声明

本文件中所包含的信息，代表北京春笛网络信息技术服务有限公司（以下简称春笛公司）的观点。由于春笛公司必须反应市场条件的变化，因此不应解释为春笛公司的承诺。在发行日之后，春笛公司不保证文件中任何信息的正确性。

此手册仅供参考使用。

使用者必须依从所有适用的版权相关法律规则。在不限制著作权法所保障的权利下，若无春笛公司的书面许可，本文件的任何部分都不可重复生产、储存或放入可撷取的系统中，或以任何形式、方式 (不管是电子、机械、影印、录音等方式) 或基于任何目的来传输。

本文件中可能涉及春笛公司的专利、专利应用程序、商标、版权或其它智力财产权。除非您有春笛公司的任何书面授权合约，本文件并未提供您这些专利、商标、著作权或其它智慧财产权的任何授权。

除非另有说明，此处所描述之范例公司、组织、产品、网域名称、电子邮件地址、商标图样、人员、地点及事件均属虚构，并非影射任何真实的公司、组织、产品、网域名称、电子邮件地址、商标图样、人员、地点及事件。

2006 北京春笛网络信息技术服务有限公司. 著作权所有，并保留一切权利。

本文提到的金笛，jdmail 系春笛公司注册商标。

感谢您选购金笛电子邮件系统。金笛电子邮件系统（以下简称jdmail）是一款电子邮件服务器软件。支持windows2000、XP、2003，支持绝大多数Linux系统，支持SOLARIS、AIX、HP-UX、FreeBSD系统。 该系统以服务守护进程（Service Daemon）形式运行在服务器端，提供SMTP（25端口）、POP3（110端口）、IMAP（143端口）、WEBMAIL（8080端口）服务。


第一章管理员部分.35605

Powered By Gisun http://www.gisun.com

第一章 管理员部分


一.快速安装与设置说明.36041

Powered By Gisun http://www.gisun.com

一. 快速安装与设置说明


1.Jdmail系统运行环境.36439

1. Jdmail系统运行环境

Jdmail支持的操作系统类型 | 版本
Windows2000 | Windows 2000 Professional Windows 2000 Server Family Windows 2000 Advanced Server
WindowsXP |
Windows 2003 Server |
Linux | Redhat：redhat7、8、9，FC1、FC2、FC3、FC4、FC5，ES3、ES4、AS3、AS4 CentOS：各个版本都支持 SUSE：各个版本都支持 红旗Linux：各个版本都支持 共创Linux：各个版本都支持 中标普华Linux：各个版本都支持 麒麟Linux：支持FreeBSD内核版本 TurboLinux：各个版本都支持 Debain：尚未测试 XteamLinux：尚未测试 新华Linux：尚未测试
Solaris | For Sparc solaris7/8/9/10
AIX | 5L
HP-UX | 各个版本都支持
FreeBSD | 各个版本都支持


2.安装前的准备工作，检查操作系统是否具备安装条件.47677

2. 安装前的准备工作，检查操作系统是否具备安装条件

检查项目 | 具备条件要求
邮件服务器硬件 | PC Server最低配置要求PIII以上，512M内存，硬盘在40G以上
域名 | 需要有独立的域名，并有更改MX记录的权限
IP地址 | 需要有互联网固定IP。没有固定IP采用动态IP绑定域名软件也可
子网掩码、网关 | 在安装前，需要将网络掩码、网关IP核实、做好记录
DNS服务器 | DNS服务器是指在投递邮件时，需要查询的DNS服务器IP地址。邮件投递的效率和成功率和DNS服务器是否稳定有效有直接密切关系，请选择DNS服务器时一定要选择当地稳定、高速的DNS服务器。
防火墙 | 如果有防火墙，邮件服务器放在内网上，需要在防火墙上开通25,110,8080端口外部可以访问，并将端口映射到内部邮件服务器。8080端口是jdmail默认的webmail访问端口，在不引起冲突的情况下，可以修改为通过80端口访问。
磁盘分区 | Jdmail采用单目录部署，邮件和用户信息放在jdmail目录下。Jdmail所在的磁盘应该有足够的空间，并考虑到未来邮件容量增涨情况。
检查操作系统 | 检查操作系统25、110、143、8080这4个端口是否被占用。Windows系统检查，可在DOS提示符下输入 C> telnet localhost 25 如果显示“正在连接到localhost...不能打开到主机的连接， 在端口 25: 连接失败”，说明端口空闲，可以用此方法依次检查其它110、143、8080端口。 如果发现端口占用，请先停止相关的服务。 LINUX/UNIX系统检查，可在终端提示符下输入 # telnet localhost 25 如果提示“Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host: Connection refused”，说明端口未被占用，依次检查110、143、8080端口 如果发信端口占用，请先停止相关的服务。
用户和邮件迁移 | 如果需要迁移以前的邮件用户和邮件内容，请务必将以前的邮件系统做完整备份。Qmail、mdaemon、imail、postfix用户可以平滑迁移到jdmail。
个性化 | 如果要修改邮件系统登录首页面，请准备好LOGO图片


二.Jdmail目录结构说明.61613

二. Jdmail目录结构说明

目录 | 用途 | 备注
accounts | 存放用户的密码和邮件 |
conf | 存放系统运行参数、注册码、域信息 |
Jdk | Java运行环境 |
Logs | 分类存储系统运行日志文件 |
Sa | Spamassassin垃圾邮件过滤引擎和规则库 |
Spool | 邮件队列 |
Virusdb | 病毒库 |
Web | Tomcat应用服务器和webmail |


三.JdmailforWindows2000、XP、2003安装步骤.70449

Powered By Gisun http://www.gisun.com

三. Jdmail for Windows2000、XP、2003 安装步骤

Jdmail从安装到启用，要经历3步：

安装软件 → 添加域 → 添加用户

添加域，就是创建一个以单位域名为后缀的@域空间，添加用户，就是创建一个用户邮箱。


1.下载.71873

Powered By Gisun http://www.gisun.com

1. 下载

打开http://www.mailer.com.cn/ 金笛电子邮件系统网站，选择相应的版本，点击下载按钮的链接，开始程序下载。


2.安装.72864

2. 安装

1）双击刚才下载的邮件程序安装文件。

2）打开安装程序，选择邮件系统的安装路径，点击"next"下一步。

3）选择邮件系统在开始菜单里面的名称，直接点击"install"开始安装。

4）开始安装进程。

5）安装成功，点击“是”重启系统。


3.运行.76298

3. 运行

1）重启系统之后 ，自动启动金笛邮件系统控制台，点击“运行mail服务器”和“运行webmail服务器”，启动邮件服务程序。

2）如果需要每次系统重启都自动启动服务，进入控制面板－管理工具－服务，双击jdmail server和jdmail web两个服务。

3）打开服务的属性页，把启动类型改为自动，这样以后每次系统重启，都会自动加载金笛邮件的服务。

4）自动邮件服务之后，打开浏览器，输入http://localhost:8080/maintlogin.jsp就可以登录系统后台了，或者直接从开始菜单里面选择管理员登录。

5）在系统管理员登录界面，直接点击登录按钮就可以进入系统管理后台了。


4.管理.80539

4. 管理

1）点击 域管理 → 新增，进入新增域界面。

HELO命令域名,是用于服务器向外发邮件时，进行SMTP会话中的，HELO命令的域名，必须设为邮件服务器的A类域名,否则外发邮件时,会被某些邮件服务器拒绝。

总分配空间，设定该域的总许可空间，当该域下增加的用户总空间超出总分配空间，系统将提示新增用户失败。

域到期时间，就是设定一个时间，当这个时间到期的时候，就发送一封通知邮件到＂接收域信息通知邮件地址＂。

用户数，设定该域的总许用户数，当该域下增加的用户总数超出总用户数，系统将提示新增用户失败。 该参数应该小于或等于注册码中的最多可用用户数。

是否默认，如果该域设为默认域，则用户在收发邮件登录jdmail时无须在用户指定域信息，jdmail会认为该用户为默认域下用户，否则登陆的用户名须指定域信息。一个jdmail服务器只能指定一个域为默认域。如果你只用jdmail来管理一个域，则这个域必须设为默认域

是否允许用户注册，设定该域是否允许用户自己注册邮箱，如果允许，则非注册用户可通过/reguser.jsp 自己注册邮箱。

以下为自注册用户默认值，其意义请参考用户管理中的说明。

启用服务

启用SMTP服务

启用POP3服务

启用IMAP4服务

启用WEB服务

最大空间

最多邮件数

2）点击 用户管理 → 新增，进入新增用户界面。

用户类型，设定用户类型， 用户类型分为“普通用户”和“域管理用户”，域管理用户可以增加，删除，修改本域下的用户信息。

启用服务，设定该用户是否有效。

启用SMTP服务，设定该用户可否通过SMTP 客户端（如OutLook）来发送邮件。

启用POP3服务，设定该用户可否通过POP3 客户端（如OutLook）来收取邮件。

启用IMAP4服务，设定该用户可否可以使用IMAP4服务。

启用WEB服务，设定该用户可否登陆WEBMAIL。

最大空间，设定用户的最大允许使用空间，注意是以“字节”为单位。

最多邮件数，指定用在服务器上最多可存放的邮件数，以封为单位。

此外还可以设置用户的其他基本信息，包括电话，手机，地址等。


四.Jdmailforlinux、solaris、aix、hp-ux、freebsd安装步骤.91874

Powered By Gisun http://www.gisun.com

四. Jdmail for linux、solaris、aix、hp-ux、freebsd安装步骤

Jdmail 在unix系统的安装步骤大体相同，下面以linux为例，其它操作系统可以参考linux系统。

Jdmail 在linux 下采用 .tgz的打包发行办法，主要考虑各个版本linux都支持tar命令。用tar命令，直接展开压缩包，运行startjd.sh 和startup.sh 就可以使用。具体步骤如下：


1.安装步骤.94013

1. 安装步骤

1）安装linux前磁盘分区没有特别要求，但至少有一个存放邮件的分区要大些。比如如果jdmail 如果安装在/home分区下，/home分区要至少10G以上。

2）安装需要以root用户登陆，插入金笛安装光盘，依次输入如下命令：

# mount /dev/cdrom (挂接jdmail安装光盘)

# cd /mnt/cdrom

# cp jdmail_linux_xxx.tgz /

# cd /

# tar xvzf jdmail_linux_xxx.tgz

# cd /jdmail

# ./startjd.sh

# cd /web/bin/

# ./startup.sh

3）修改启动脚本/etc/rc.d/rc.local, 加入下面几行：

/jdmail/startjd.sh &

/jdmail/web/bin/startup.sh &

/jdmail/safestart.sh &

注意： jdmail 如果不是安装在/jdmail 目录下，请一定要修改 startjd.sh 文件中的JDMAIL_ROOT路径。比如如果jdmail安装在/home/jdmail ，JDMAIL_ROOT应该设置为：

JDMAIL_ROOT=/home/jdmail

注意一定要设为绝对路径。相应的 /etc/rc.d/rc.local也要改为：

/home/jdmail/startjd.sh &

/home/jdmail/web/bin/startup.sh &

/home/jdmail/safestart.sh &


2.检查安装是否成功.101311

2. 检查安装是否成功

1）检查smtp、pop3服务是否正常启动

可以在命令行输入：

#telnet localhost 25

如果显示：220 jdmail SMTP Service ready

说明smtp服务启动成功，假如返回的不是这个信息，说明有其它smtp服务已经占用的25号端口，请先停止其它smtp服务。比较常见的是sendmail服务默认都是启动的，可以用：

# pkill -9 sendmail

# chkconfig –level 2345 sendmail off

关闭sendmail服务。

如果没有任何提示信息，立即返回到命令提示符下，说明jdmail服务没有正常启动，请输入：

# ps –ef |grep jdmail

检查是否有

root 23586 23446 0 Apr22 ? 00:00:02 ./jdmail

root 23587 23446 0 Apr22 ? 00:00:02 ./jdmail

root 23588 23446 0 Apr22 ? 00:00:05 ./jdmail

root 23589 23446 0 Apr22 ? 00:00:05 ./jdmail

root 23590 23446 0 Apr22 ? 00:00:02 ./jdmail

root 23591 23446 0 Apr22 ? 00:00:04 ./jdmail

root 23592 23446 0 Apr22 ? 00:00:03 ./jdmail

root 23593 23446 0 Apr22 ? 00:00:02 ./jdmail

这些服务进程启动，如果没有，请检查startjd.sh JDMAIL_ROOT路径设置是否正确。

如果JDMAIL_ROOT设置正确，jdmail 服务进程还是无法启动，请记录操作系统版本，并且联系金笛邮件的客服人员协助解决。

2）检查web是否正常启动

在命令行，输入：

# ps –ef|grep web

如果出现，

root 4455 1 0 Apr20 ? 00:00:01 /home/jdmail/jdk/bin/java -Djava.endorsed.dirs=/home/jdmail/web/common/endorsed -classpath /home/jdmail/jdk/lib/tools.jar:/home/jdmail/web/bin/bootstrap.jar:/home/jdmail/web/bin/commons-logging-api.jar -Dcatalina.base=/home/jdmail/web -Dcatalina.home=/home/jdmail/web -Djava.io.tmpdir=/home/jdmail/web/temp org.apache.catalina.startup.Bootstrap start

说明jdmail web 服务进程已经启动。


五.Jdmail安装后的设置与启用邮箱服务.110462

五. Jdmail安装后的设置与启用邮箱服务

Jdmail安装完毕后，可以通过下面方式登录：

请打开IE或者其它浏览器，输入http://xxx.xxx.xxx.xxx:8080 即可访问到金笛邮件系统的登录页面，点管理员登陆，可以进入管理员的后台管理界面。注意：金笛邮件系统默认的超级用户是postmaster,默认没有密码，直接点登陆即可进入后台。在正式启用邮件服务后，切记要修改postmaster的密码。

如果需要修改默认8080web服务端口，可以找到 jdmail/web/conf/server.xml 这个文件：

<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" />

将8080改为80端口或者其它端口。

修改完毕后保存server.xml 文件，重新启动web服务即可。


六.公共地址簿设置.114954

Powered By Gisun http://www.gisun.com

六. 公共地址簿设置

Jdmail 地址簿分为三级，公共地址簿、域地址簿和个人地址簿。地址簿可以按照单位的组织结构创建，层次不限。


七.Jdmail短信功能与设置.115859

七. Jdmail短信功能与设置

金笛邮件系统标准版、企业版内嵌短信功能，只要加一个金笛GSM/GPRS猫即可实现有新邮件之后，发短信提醒，还可以在发送邮件的同时，给对方发一个短信。

注意事项：

1. 串口：(Windows版本格式:"comX:",其中X为串口号,如:com1: ; Linux/Solaris版本 格式:"设备文件路径",如:/dev/ttyS0)

2. 短信中心号码：以当地网络运营商为准。

短信应用一、新邮件到达提醒可以设置提醒条件。jdmail通过过滤规则，只有满足条件的邮件，才发短信提醒，避免短信骚扰。

短信应用二、发送邮件同时给对方发送短信。可以直接通过选择常用的短语编辑发送。


八.数据迁移.119572

八. 数据迁移

邮件服务器类型 | 导入用户名、密码 | 导入邮件
Qmail | 可以导入用户名、密码 | 可以直接导入邮件
Postfix | 可以导入用户名、密码 | 可以直接导入邮件
Imail | 可以导入用户名、密码MD5格式导入 | POP方式导入邮件
Mdaemon | 可以导入用户名、密码MD5格式导入 | POP方式导入邮件
Exchange | 可以导入用户名，密码需要重置 | POP方式导入邮件
Domino Lotus | 可以导入用户名，密码需要重置 | POP方式导入邮件

第一步：准备好用户列表文件，导入用户

操作：系统设置 → 用户初始化

第二步：导入用户邮件

操作：系统设置 → 导入邮件

如果是原邮件系统是qmail ，可以直接选择原邮件系统类型为qmail。

如果原邮件系统是postfix，可以选择Cyrus IMAP类型。

如果原邮件系统即不是qmail也不是postfix，需要根据原邮件系统的存储格式，做相应的格式转换，然后再导入。


九.如何设置jdmail，使之支持Oracle？.128749

九. 如何设置jdmail，使之支持Oracle？

第一步：在Oracle创建数据库，并创建表空间（完整的sql文件在db_sql目录）

create table account(

domain varchar(50) not null,

username varchar(20) not null,

tpassword varchar(20),

usertype char(1),

enable varchar(5),

enable_smtp varchar(5),

enable_pop3 varchar(5),

enable_imap4 varchar(5),

enable_webaccess varchar(5),

enable_localdomain varchar(5),

enable_sms varchar(5),

max_mailbox_size int,

max_mailbox_msgs int,modifytime bigint);

alter table account ADD INDEX useraccount(domain,username);

insert into account(

domain ,

username ,

tpassword ,

usertype ,

enable,

enable_smtp,

enable_pop3 ,

enable_imap4 ,

enable_webaccess,

enable_localdomain,

enable_sms,

max_mailbox_size,

max_mailbox_msgs ,

modifytime) values("root","postmaster","","S","true","false","false","false","true","false","true",-1,-1,1111668221846);

insert into account(

domain ,

username ,

tpassword ,

usertype ,

enable,

enable_smtp,

enable_pop3 ,

enable_imap4 ,

enable_webaccess,

enable_localdomain,

max_mailbox_size,

max_mailbox_msgs ,

modifytime) values("root","nobody","","U","true","false","false","false","true","false","true",-1,-1,1111668221846);

create table domains(

name varchar(50) not null PRIMARY KEY,

helodomain varchar(50),

bdefault varchar(50),

enablereg varchar(50),

users int,

license varchar(200),

enable varchar(5),

enable_smtp varchar(5),

enable_pop3 varchar(5),

enable_imap4 varchar(5),

enable_webaccess varchar(5),

enable_localdomain varchar(5),

max_mailbox_size int,

max_mailbox_msgs int,

total_mailbox_size int,

modifytime bigint,

notetime varchar(30),

noteaddress varchar(50));

create table profile(

domain varchar(50) not null,

username varchar(20) not null,

first_name varchar(50),

last_name varchar(50),

organiztion varchar(100),

department varchar(20),

address varchar(100),

city varchar(30),

postalcode varchar(10),

telephone varchar(20),

state_province varchar(20),

country varchar(20),

items int,

mobile varchar(60));

insert into profile(

domain ,

username ,

first_name ,

last_name,

organiztion,

department,

address,

city,

postalcode ,

telephone ,

state_province,

country ,

items,

mobile ) values("root","postmaster","","","","","","",

"","","","",20,"");

insert into profile(

domain ,

username ,

first_name ,

last_name,

organiztion,

department,

address,

city,

postalcode ,

telephone ,

state_province,

country ,

items,

mobile) values("root","nobody","","","","","","",

"","","","",20,"");

alter table profile ADD INDEX userprofile(domain,username);

create table signature(domain varchar(50) not null,username varchar(20) not null,name varchar(100) not null, content longblob);

create table tgroup(domain varchar(50) not null,username varchar(20) not null,realname varchar(30) not null,receivecond varchar(20) not null,

remaincopy varchar(6) not null,replacercpt varchar(6) not null,users longblob);

第二步：设置数据库连接参数

操作：系统设置 → 数据库参数

第三步：设置用户验证类型

操作：系统设置 → 一般参数


十.用户组管理.151097

十. 用户组管理

什么是用户组？ 用户组是每个域下所有用户或者一群用户的集合，给这群用户定义一个名字，就叫组名。给组名发信，组内所有的用户都可以收到。组名相当域邮件列表名。

举例说明： xxx.com 下创建了一个用户组：service， service组有2个用户：

User1@xxx.com

User2@xxx.com

如果给service@xxx.com 发信，user1@xxx.com user2@xxx.com 都可以收到。利用用户组管理，可以灵活实现通知、公告、讨论等，非常灵活、方便。

如果将域内所有用户都作为组成员，可以输入*@mailer.com.cn 来代替，mailer.com.cn 要改为您的域名。

组成员可以是系统内的用户，也可以不是系统内的用户。如果是系统内用户，可以直接通过 选择系统用户 来选中。


十一.用户自助注册邮箱申请.154457

十一. 用户自助注册邮箱申请

第一步：开通用户注册权限

操作：域管理 → 编辑域信息

是否允许注册：选中 ， 启动服务：选中

第二步：修改新用户注册申请页面（reguser.jsp）

第三步：用户审批

操作：任务管理 → 用户注册申请


十二.循序渐进：深入了解Jdmail，详细了解各项功能参数配置.156864

Powered By Gisun http://www.gisun.com

十二. 循序渐进：深入了解Jdmail，详细了解各项功能参数配置


1.垃圾邮件攻击与防范－反病毒、反垃圾邮件设置.157302

1. 垃圾邮件攻击与防范－反病毒、反垃圾邮件设置

邮件系统安装完毕后，需要对反病毒、反垃圾邮件功能参数进行优化，才能达到比较好的效果。金笛采用多种方式综合防止的办法来实现垃圾邮件过滤。具体说来，可以从这几个方面可以进行优化：

系统设置 → SMTP服务：

如上图所示，启用SMTP验证这个选项应该选中。否则，不需要身份验证即可发送垃圾邮件，容易成为SMTP的转发服务器，会收到大量的垃圾邮件。

检查发送者邮件地址域名的有效性，可以过滤到一部分地址无效的垃圾邮件。这个选项一般选中。

允许空的发送者：指发件人是否为空。正常邮件发件人一般不为空，只有垃圾邮件会隐藏发件人地址，这个选项一般选中。

一分钟内同一IP允许访问次数：这是发送频率限制，默认为32次。也就是在一分钟内，允许连接SMTP服务端口32次。正常发信一般不会超过这个次数。假如单位有邮件网关，所有的外部邮件通过网关转发而来，这个值应该设为-1, 不做任何控制，否则会拒收网关发来的邮件。

同一IP最大同时访问数：这是并发访问数控制。垃圾邮件发送者通常会采用多线程群发软件，同时发起多个SMTP连接，以加快邮件的发送速度。同一个IP的多个SMTP连接，将会占用SMTP服务而不释放，导致正常的邮件发送不出去。这个参数可以避免因群发软件引起的服务过载情况。超过默认的32个并发，服务器将自动屏蔽发信的IP。

Jdmail具有强大的黑名单功能，支持perl正则表达式，可以屏蔽特定域或者特定用户。

启用RBL反垃圾查询：RBL是“Real Black List”动态黑名单技术。国际、国内反垃圾邮件组织监控全球发送垃圾邮件的IP，并实时更新黑名单。Jdmail可以采用多个黑名单，以达到好的反垃圾邮件效果。目前提供这项服务的反垃圾邮件组织一般都是免费提供服务。Jdmail系统默认没有开启这项服务。

RBL服务地址：国外的有：bl.spamcop.net 国内的有：cbl.anti-spam.org.cn ，关于cbl的详细说明请参考：http://anti-spam.org.cn/services/rbl.php 。无论国内、国外的RBL，都存在不同程度误判的现象，在设置时，请谨慎使用。

启用RWL白名单查询：RWL是“Real White List”。

RWL服务地址：国内有：cml.anti-spam.org.cn 。关于CML的详细说明，请参考：http://anti-spam.org.cn/services/cml.php 。

对HELO域名进行反向DNS查询：HELO域名是指邮件服务器IP自身对应的域名，通过对该域名进行反向DNS查询并与真实IP比较，可以断定发信服务器的身份。由于很多邮件服务器没有设置HELO域，或者HELO域设置为localhost，选中此项后，会导致部分合法邮件收不到。不建议选中此项。

验证HELO域名的有效性：检查HELO域名是否有对应真实存在的固定IP。如果存在固定IP，就认为域名有效，否则无效。很多邮件服务器并不设置HELO域，因此在不清楚此项设置所造成的后果的情况下，不建议选中此项。

启用SpamAssassin（简称SA）：SA是目前反垃圾邮件领域比较有效的基于内容bayes规则库过滤的anti-spam引擎。启用SA，将对收到的每封邮件都调用SA进行扫描判定。Jdmail系统默认选中此项。如果有外部邮件网关，可以将此项关闭。

同域内互发邮件也使用SpamAssassin：同域内的用户之间发邮件，也调用SA。

判定垃圾邮件值：SA会对邮件头信息（信封）、邮件正文（信体）、邮件附件逐项分析判定打分，如果分数超过判定值，系统判定为疑似垃圾邮件，邮件进入postmaster管理员反垃圾邮件列表。系统默认值为8，分数越小，对垃圾邮件的检查越严格，收到的垃圾邮件越少；分数越大，越不严格，收到的垃圾邮件越多。 一般在系统上线一段时间后，在3-8之间调整，取一个比较合适的数字。 注意，此数字不可设置太小，太小会导致误判率上升。

判定为系统自动删除值：SA对邮件打分，如果超过自动删除值，系统会自动删除这封邮件。此项设置，删除值不可设置太小，太小会导致有用的邮件被删除。一般在12-15之间比较合适。

垃圾邮件处理账号：收到垃圾邮件后，系统自动放在postmaster@root 账户下，此项设置不可更改。

规则库自动升级间隔：反垃圾邮件效果好坏，与规则库是否为最新、最全有直接关系。这一点和病毒库类似。系统默认设置为3天升级一次。

规则库自动升级地址：默认是国内一个比较好的规则库升级地址，对中文的垃圾邮件很有效果。

启用ClamAV：ClamAV是jdmail系统内嵌的邮件杀毒软件。启动clamav将对所有收到、发出的邮件进行病毒扫描。系统默认启动。

记录反病毒明细日志：详细记录发信病毒邮件的时间、发信人、收信人等信息。

同域内互发邮件也使用ClamAV：对于同一个域的邮件也启动Clamav检查。

病毒邮件处理账户：默认为postmaster@root, 所有的病毒邮件进入该账户的病毒邮件列表。

病毒库自动升级间隔： 默认为48小时，可以根据网络的情况灵活设置。

升级失败尝试次数：病毒库超过1M，有时候下载病毒库不一定成功，通过此项设置可以尝试多次下载。系统默认最多尝试5次。

病毒库版本信息查询地址：查询最新的病毒库版本信息。

病毒库下载地址：可通过HTTP协议下载最新的病毒库。

所有的病毒邮件，都会进入病毒报告列表，管理员可以定期进入察看，可以选择删除或者对于误判的病毒邮件选中重新发送。过一段时间后，进入该列表的病毒邮件会逐渐增多，管理员可以通过系统设置 → 一般参数设定定期自动清除的时间间隔。

为了对付垃圾邮件，并对垃圾邮件进行更精准的控制，jdmail提供全局过滤规则设定：

以过滤国外的图片垃圾邮件为例，如果收到类似这样的垃圾邮件：

可以采用如下的过滤规则：

内容包含：<img [^>]+src=”cid:[^>]+> ，即可过滤95%以上的图片垃圾邮件。发信人、收信人、主题、附件名、内容，都可以采用PERL正则表达式来描述。PERL正则表达式虽然不太容易理解，但十分灵活，需要稍加学习便可以灵活掌握。

下面是一个典型全局过滤规则文件：/jdmail/accounts/rcptfilter.xml ，可以将此文件复制到accounts目录下，命名为rcptfilter.xml，可以直接使用。

<?xml encoding="UTF-8"?>

<filterlist>

<filter name="图片垃圾邮件"  filterindex="0"
continue="FALSE" enable="TRUE" filterid="1163640163448"
modifytime="1163640163449" >

<cond type="content">

<include>&lt;img[^&gt;]+src=&quot;cid:[^&gt;]+&gt;</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="test1"  filterindex="1"
continue="TRUE" enable="TRUE"
filterid="1164081200534" modifytime="1164371979866" >

<cond type="from">

<include>[a-z][0-9]{6,11}@(yahoo|hotmail|pchome)\.com</include>

</cond>

<cond type="subject">

<include>Attachments Deleted by MailScan</include>

</cond>

<cond type="attachment">

<include>(NakedWife|MYBABYPIC|SAMPLE)\.EXE</include>

</cond>

<cond type="content">

<include>viagra|xanax|vicodin|zoloft|citrate|penis</include>

</cond>

<action>

<forward>admin@jaguarbj.com</forward>

</action>

</filter>

<filter name="test"  filterindex="2"
continue="TRUE" enable="TRUE"
filterid="1164080993013" modifytime="1164371963056" >

<cond type="from">

<include>anti.*virus|amavisd|interscan|mailsqr</include>

</cond>

<cond type="subject">

<include>A.*humour game</include>

</cond>

<cond type="attachment">

<include>(readme|instruction|transcript|mail|letter|file|text|attachment|document|message)\.(cmd|bat|com|exe|pif|scr|zip)</include>

</cond>

<cond type="content">

<include>I send you this file in order to have your advice</include>

</cond>

<action>

<forward>admin@jaguarbj.com</forward>

</action>

</filter>

<filter name="发件人过滤"  filterindex="3"
continue="FALSE" enable="TRUE"
filterid="1164596137747" modifytime="1164596137747" >

<cond type="from">

<include>anti.*virus|amavisd|interscan|mailsqr</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="发件人过滤1"  filterindex="4"
continue="TRUE" enable="TRUE"
filterid="1164596193540" modifytime="1164596193540" >

<cond type="from">

<include>\s{7}</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="发件人过滤2"  filterindex="5"
continue="TRUE" enable="TRUE" filterid="1164596230066"
modifytime="1164596230066" >

<cond type="from">

<include>[a-z][0-9]{6,11}@(yahoo|hotmail|pchome)\.com</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="主题过滤"  filterindex="6"
continue="TRUE" enable="TRUE"
filterid="1164596274419" modifytime="1164596274419" >

<cond type="subject">

<include>A.*humour game</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="主题过滤2"  filterindex="7"
continue="TRUE" enable="TRUE"
filterid="1164596310673" modifytime="1164596310673" >

<cond type="subject">

<include>A.*powful tool</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="Verba Volant"  filterindex="8"
continue="TRUE" enable="TRUE"
filterid="1164596351203" modifytime="1164596351203" >

<cond type="subject">

<include>Verba Volant</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="viagra|xanax|vicodin|zoloft|citrate|penis"
filterindex="9" continue="TRUE" enable="TRUE"
filterid="1164596382907" modifytime="1164596382907" >

<cond type="subject">

<include>viagra|xanax|vicodin|zoloft|citrate|penis</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="virus.*mail|virus.*alert|virus.*found"
filterindex="10" continue="TRUE" enable="TRUE"
filterid="1164596424747" modifytime="1164596424747" >

<cond type="subject">

<include>virus.*mail|virus.*alert|virus.*found</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="\s{12}"  filterindex="11"
continue="TRUE" enable="TRUE"
filterid="1164596445751" modifytime="1164596445751" >

<cond type="subject">

<include>\s{12}</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="Attachments Deleted by MailScan"
filterindex="12" continue="TRUE" enable="TRUE"
filterid="1164596471667" modifytime="1164596471667" >

<cond type="subject">

<include>Attachments Deleted by MailScan</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="Worm Klez.E immunity"
filterindex="13" continue="TRUE" enable="TRUE"
filterid="1164596491741" modifytime="1164596491741" >

<cond type="subject">

<include>Worm Klez.E immunity</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="根据附件名过滤"  filterindex="14"
continue="TRUE" enable="TRUE"
filterid="1164596523253" modifytime="1164596523253" >

<cond type="attachment">

<include>(readme|instruction|transcript|mail|letter|file|text|attachment|document|message)\.(cmd|bat|com|exe|pif|scr|zip)</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="readme\.(eml|exe|com|wav)"
filterindex="15" continue="TRUE" enable="TRUE"
filterid="1164596571039" modifytime="1164596571039" >

<cond type="attachment">

<include>readme\.(eml|exe|com|wav)</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="(NakedWife|MYBABYPIC|SAMPLE)\.EXE"  filterindex="16"
continue="TRUE" enable="TRUE"
filterid="1164596591790" modifytime="1164596591790" >

<cond type="attachment">

<include>(NakedWife|MYBABYPIC|SAMPLE)\.EXE</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="I send you this file in order to have your
advice"  filterindex="17" continue="TRUE"
enable="TRUE" filterid="1164596620825"
modifytime="1164596620825" >

<cond type="content">

<include>I send you this file in order to have your advice</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

<filter name="viagra|xanax|vicodin|zoloft|citrate|penis"
filterindex="18" continue="TRUE" enable="TRUE"
filterid="1164596645880" modifytime="1164596645880" >

<cond type="content">

<include>viagra|xanax|vicodin|zoloft|citrate|penis</include>

</cond>

<action>

<reject></reject>

</action>

</filter>

</filterlist>


2.服务器性能优化.229620

2. 服务器性能优化

Jdmail默认设置能够应付绝大部分应用，但由于具体应用环境的硬件、使用人数会有很大不同，如果能够根据具体的使用情况，做一些优化，将最大限度发挥硬件、软件、网络资源。

1）Jdmail Server服务线程数调整

Jdmail共有3个服务，SMTP、POP3、IMAP，可以分别调整。

SMTP服务线程调整：

系统默认设置为16，可以支持5000用户，以后可以按照每增加100用户增加1个服务线程来调整。如果内存不足512M，请使用默认设置，不要调整此数值。如果内存不足256M，请设置为：8

POP3服务线程：

系统默认设置为25，可以支持5000用户左右，以后可以按照每增加100用户增加1个服务线程来调整。如果内存不足512M，请使用默认设置，不要调整此数值。如果内存不足256M，请设置为：16

IMAP服务线程数：

系统默认设置为64，如果不使用IMAP服务，请将此数字调整为：2 以释放更多内存空间。

最大投递线程数：

投递线程数系统默认为：25 。 此参数一般不需要调整。如果内存小于512M，可以将投递线程调整为16。 通过系统监控服务器 → 队列察看 ，如果发现有邮件在排队，可以适当加的投递线程数。

2）优化WEBMAIL性能

Jdmail 的webmail部分采用tomcat为应用服务器，tomcat内存使用空间依赖JAVA虚拟机的空间。如果内存在512M以上，可以修改tomcat启动脚本 /jdmail/web/bin/startup.sh ，在开始处增加如下两行：

JAVA_OPTS=”-¬Xms128m -Xmx256m”

Export JAVA_OPTS

Windows版本修改startup.bat文件。


3.邮件监控.239872

Powered By Gisun http://www.gisun.com

3. 邮件监控


4.DDOS攻击与防范.240190

4. DDOS攻击与防范

邮件服务器放在公网上，如果没有防火墙，不可避免地会遭受DDOS拒绝服务攻击。Jdmail smtp能够较好地防止垃圾邮件攻击，但是对于DDOS拒绝服务攻击，需要从操作系统层面来解决。以Redht Linux 为例，需要启动iptables防火墙，允许smtp、pop3、webmail、和SSH端口访问，其它端口关闭。并且修改 /etc/sysconfig/iptables 文件， 增加如下几行：

#防止同步包洪水（Sync Flood）

-A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

-A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

#--limit 1/s 限制syn并发数每秒1次，可以根据自己的需要修改

#防止各种端口扫描

-A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Ping洪水攻击（Ping of Death）

-A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

重启iptables ，就可以了。


十三.Jdmail系统升级.244825

Powered By Gisun http://www.gisun.com

十三. Jdmail系统升级

如果需要升级jdmail系统，请将 jdmail目录下的accounts 和conf目录拷贝出来，重新安装新版本jdmail, 然后将accounts 和conf 这2个目录拷贝回去即可。


十四.Jdmail系统备份与恢复.246137

Powered By Gisun http://www.gisun.com

十四. Jdmail系统备份与恢复


1.备份：.246482

1. 备份：

邮件系统使用一段时间后，会沉积大量有用的邮件，因此备份工作非常重要。很多用户对此没有引起足够的重视，一旦系统出故障，造成不可挽回的损失。Jdmail工程师建议客户同时采用2种备份方式，手工备份和系统自动备份。手工备份1周一次，通过postmaster管理员账户登录后台：系统备份 → 新增备份

如果备份文件大于5G，建议不要采用web备份方式，而是直接备份jdmail目录。这样比较安全可靠。

如果是linux操作系统，可以用tar命令备份，具体做法为

# tar cvzf mailbackup`date`.tar.gz /jdmail

要想实现自动备份，可以将上面一行命令加入 /etc/crontab 实现定时备份。


2.恢复：.249935

Powered By Gisun http://www.gisun.com

2. 恢复：

只要将备份出来的accounts 和conf 拷贝会原来的目录即可。


十五.Jdmail个性化设置.250455

十五. Jdmail 个性化设置

修改个性登录页面：

jdmail/web/webapps/ROOT/login.jsp ，用文本编辑器编辑此文件即可。

修改SMTP欢迎信息：

修改新用户欢迎信息：系统设置 → 邮件模板

另外，通过此功能还可以修改邮件空间告警邮件模板、域到期通知、邮件脚注（文本、HTML）。


十六.Jdmail系统LDAP设置指南.252473

Powered By Gisun http://www.gisun.com

十六. Jdmail 系统LDAP设置指南


1.概述.252884

Powered By Gisun http://www.gisun.com

1. 概述

本指南用于说明如何使用LDAP 服务器保存邮件系统用户信息。邮件服务器用户验证结构如下：

验证服务器用于跨数据库，LDAP服务器的验证中心。邮件服务器把验证请求发送到验证服务器，验证服务器再根据具体的后台用户信息保存类型进行相应的用户信息读取，验证。


2.LDAP服务器设置.254466

2. LDAP 服务器设置

本指南以OpenLDAP 做为例子LDAP 服务器。配置步骤如下：

1）把以下schema 文件(jdmail.schema)加入 openldap/etc/schema.

attributetype ( 5.1.1.1 NAME 'domain'

DESC 'domain name'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.2 NAME 'enable'

DESC 'enable'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.3 NAME 'enablesmtp'

DESC 'enable_smtp'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.4 NAME 'enableimap4'

DESC 'enable_imap4'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.5 NAME 'enablepop3'

DESC 'enable_pop3'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.6 NAME 'enablewebaccess'

DESC 'enable_webaccess'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.7 NAME 'enablelocaldomain'

DESC 'enable_webaccess'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.8 NAME 'enablesms'

DESC 'enable_sms'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.9 NAME 'maxmailboxsize'

DESC 'max_mailbox_size'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.10 NAME 'maxmailboxmsgs'

DESC 'max_mailbox_msgs'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.11 NAME 'usertype'

DESC 'usertype'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.12 NAME 'tpassword'

DESC 'tpassword'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.13 NAME 'modifytime'

DESC 'modifytime'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.14 NAME 'firstname'

DESC 'firstname'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.15 NAME 'organiztion'

DESC 'organiztion'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.16 NAME 'department'

DESC 'department'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.17 NAME 'address'

DESC 'address'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.18 NAME 'city'

DESC 'city'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.19 NAME 'tpostalcode'

DESC 'tpostalcode'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.20 NAME 'telephone'

DESC 'telephone'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.21 NAME 'stateprovince'

DESC 'stateprovince'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.22 NAME 'country'

DESC 'country'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.23 NAME 'items'

DESC 'items'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.24 NAME 'mobile'

DESC 'mobile'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.25 NAME 'realname'

DESC 'realname'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.26 NAME 'receivecond'

DESC 'receivecond'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.27 NAME 'remaincopy'

DESC 'remaincopy'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.28 NAME 'replacercpt'

DESC 'replacercpt'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.29 NAME 'users'

DESC 'users'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2046} )

attributetype ( 5.1.1.30 NAME 'helodomain'

DESC 'helodomain'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2046} )

attributetype ( 5.1.1.31 NAME 'bdefault'

DESC 'bdefault'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{6} )

attributetype ( 5.1.1.32 NAME 'enablereg'

DESC 'enablereg'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{6} )

attributetype ( 5.1.1.33 NAME 'domainusers'

DESC 'domainusers'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.34 NAME 'license'

DESC 'license'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.35 NAME 'totalmailboxsize'

DESC 'totalmailboxsize'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.36 NAME 'notetime'

DESC 'notetime'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.37 NAME 'state'

DESC 'state'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )

attributetype ( 5.1.1.38 NAME 'notesetdisable'

DESC 'notesetdisable'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )

attributetype ( 5.1.1.39 NAME 'lastname'

DESC 'lastname'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.40 NAME 'noteaddress'

DESC 'noteaddress'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

attributetype ( 5.1.1.41 NAME 'username'

DESC 'username'

EQUALITY caseIgnoreMatch

SUBSTR caseIgnoreSubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )

objectclass ( 5.1.1.99 NAME 'mailuser'

DESC 'mailuser'

SUP top STRUCTURAL

MUST ( username )

MAY ( domain $ enable $ enablesmtp $ enableimap4 $

enablepop3 $ enablewebaccess $ enablelocaldomain $ enablesms $

maxmailboxsize $ maxmailboxmsgs $ usertype $ tpassword $

modifytime $ firstname $ lastname $ organiztion $ department $ address $

city $ tpostalcode $ telephone $ stateprovince $ country $ items $ mobile $

realname $ receivecond $ remaincopy $ replacercpt $ users ) )

objectclass ( 5.1.1.98 NAME 'maildomain'

DESC 'maildomain'

SUP top STRUCTURAL

MUST ( domain )

MAY ( helodomain $ bdefault $ enablereg $ domainusers $ license $ enable $ enablesmtp $ enableimap4 $

enablepop3 $ enablewebaccess $ enablelocaldomain $ enablesms $

maxmailboxsize $ maxmailboxmsgs $ totalmailboxsize $ notetime $

noteaddress $ state $ notesetdisable $ modifytime ) )

2） 配置 ldapd.conf，加入以下指定jdmail.schema 的配置。

include C:/openldap/etc/schema/jdmail.schema

3） 启动ldap 服务器，加入以下管理员DN。

dn: cn=Manager,dc=my-domain,dc=com

objectclass: organizationalRole

cn: Manager


3.AuthCenterServer设置.316233

3. AuthCenter Server 设置

打开 authcenter/conf/sys.conf 配置文件，加入以下指定ldap 服务器信息：

auth_type=ldap

ldap_server=127.0.0.1

ldap_port=389

ldap_base_dn=dc=my-domain,dc=com

ldap_admin_dn=cn=Manager,dc=my-domain,dc=com

ldap_password=12345678


4.邮件服务器设置.318410

Powered By Gisun http://www.gisun.com

4. 邮件服务器设置

1）进入邮件系统管理界面，系统设置 → ldap 参数，如图：

2）配置认证中心，进入 系统设置 → 认证中心。

3）指定系统验证类型为“认证中心（LDAP）” 认证方式，进入系统设置 → 一般参数。


5.启动步骤.321557

5. 启动步骤

设置完毕，系统启动步骤如下：

1）启动ldap 服务器

2）启动 authcenter 服务器 （用startserver.bat 或 startserver.sh 启动脚本）。

3）启动 webmail 服务器。

4）启动 邮件服务器。


十七.分布式系统配置指南.323371

Powered By Gisun http://www.gisun.com

十七. 分布式系统配置指南


1.分布式邮件系统简介.323714

1. 分布式邮件系统简介

分布式邮件系统指同一域名下，跨地域部署的邮件系统。如图：

不同地区的服务器使用相同的域名，不同的服务器之间的用户名不允许相同。

相对于传统的集中部署方式，分布式部署有以下优点：

1）不同地域的用户只需通过当地部署邮件服务器进行邮件的收发，减少由于通信线路引起的异地用通过集中服务器收发故障问题。

2）通过分布式邮件系统的异地投递功能，增加投递邮件的成功率。由于近年来垃圾邮件不断泛滥，很多邮件服务器会采用封锁某个地区的IP 方式，来阻挡垃圾邮件。采用分布式系统，可当某地的服务器IP 被封锁后，系统自动的转用其他的服务器来进行投递。


2.对分布式处理要点.327185

2. 对分布式处理要点

1）自动同步用户信息

不同服务器上的用户信息自动定期的同步到群内所有的其他服务器上，以保证其他服务器能及时正确的识别该服务器的用户资料。

2）自动路由异地邮件

本地服务器通过群的用户列表，以判断邮件接收人所在的服务器，然后进行正确的投递。

3）自动转投邮件

本地服务器根据设定，自动把本服务器投递不成功的邮件转由群内其他服务器进行再次投递。


3.设置方法.328651

3. 设置方法

1）DNS 设置

需要把域名的MX记录同时指向各地区的邮件服务器。

假如公司域名为abc.com，公司有三个分支机构，分别在大陆，香港，台湾，各自的邮件服务器主机域名为 mail-dl.abc.com，mail-hk.abc.com, mail-tw.abc.com。

则abc.com 的 MX记录应该设置如下：

abc.com

IN MX 10 mail-dl.abc.com

IN MX 10 mail-kh.abc.com

IN MX 10 mail-tw.abc.com

2）分布式服务设置

通过 系统设置 → 分布式服务 进入系统的分布式服务设置，如图：

其中字段意义如下：

本节点IP ，指本服务器的公网IP地址，如果你的服务器是通过防火墙映射到公网的，则需要设定正确的公网IP地址。

服务端口， 指本服务器分布式服务端口。此端口用于接收其他节点的用户信息或邮件。

用户名、密码，用于其他节点服务器登录本服务器的用户名，密码。

可访问IP，指本服务器只允许指定范围的其他分布式服务器访问。

启用分布式服务，指定是否启动分布式服务。

允许通过分布式服务转发邮件，指定当本服务器发送到其他域的邮件投递失败后，是否转由分布式群内的其他服务器继续投递。

客户端最大线程数，指定本服务器作为分布式服务客户端连接到其他节点的最大线程数。

启用分布式客户端，指定是否启用分布式客户端功能，该功能用户把本地用户信息和邮件同步到其他节点。

3）节点设置

通过节点管理，可以添加分布式群内的其他节点。

节点列表：

节点配置：

其中字段意义如下：

节点IP，指节点的IP地址。

节点端口，指节点分布式服务端口。

节点优先级，当邮件需要转由其他节点投递时，则会先转给优先级较高的节点进行投递。

节点用户名，密码，指节点分布式服务的登录用户名密码。

是否启用该节点，指定该节点是否有效。


十八.Jdmail二次开发.338339

Powered By Gisun http://www.gisun.com

十八. Jdmail二次开发


1.用户统一管理.338678

1. 用户统一管理

Jdmail提供2种接口，一种是通过URL参数传递，还有一种是JAR API开发包。

1） URL参数传递：

操作说明:

0. 统一登陆：

URL：http://localhost:8080/mailmain?type=login&uid=test&pwd=test&domain=test.com

1.增加用户,

URL: api?pwd=管理员密码&type=add&domain=域名&username=用户名&password=密码&maxsize=最大空间&maxsize=最大邮件数

返回值: 0 -- 成功, 非0 失败

2.删除用户

URL: api?pwd=管理员密码&type=delete&domain=域名&username=用户名

返回值: 0 -- 成功, 非0 失败

3.更改用户密码

URL: api?pwd=管理员密码&type=edit&domain=域名&username=用户名&password=新密码

返回值: 0 -- 成功, 非0 失败

4.获取用户新邮件数

URL: api?pwd=管理员密码&type=getnewmsg&domain=域名&username=用户名

返回值: 0 或正数 -- 用户新邮件数, 负数 失败

2） JAR API开发包例程：

package jdmail.api.remote;

import jdmail.api.remote.user.R_UserAccount;

import jdmail.api.remote.message.R_MessageAdmin;

import jdmail.util.*;

/**

* testcase for api

*

*/

public class TestApi {

public static void main(String[] args) {

/* for(int i = 0; i < 200; i++){

createUserAccount(i);

}*/

//deleteUserAccount();

//sendMail();

int iRet = testAuth();

iRet = 0;

}

/**

* 新建用户

*

*/

public static int createUserAccount(int iIndex) {

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

R_UserAccount rua = new R_UserAccount();

// rua.m_useraccount = new

rua.m_useraccount = new UserAccount();

UserAccount ua = rua.m_useraccount;

ua.username = "w" + iIndex;

ua.setPassword_sys("w" + iIndex);

ua.usertype = "U";

ua.m_domain = "w.com";

ua.m_UserProfile = new UserProfile();

ua.m_UserProfile.first_name = "w" + iIndex;

ua.m_UserProfile.last_name = "";

ua.m_UserProfile.organiztion = "";

ua.m_UserProfile.department = "";

ua.m_UserProfile.address = "";

ua.m_UserProfile.city = "";

ua.m_UserProfile.postalcode = "";

ua.m_UserProfile.telephone = "";

ua.m_UserProfile.state_province = "";

ua.m_UserProfile.country = "";

ua.m_UserProfile.items = 50;

ua.enable = "true";

ua.enable_smtp = "true";

ua.enable_pop3 = "true";

ua.enable_imap4 = "true";

ua.enable_webaccess = "true";

ua.enable_localdomain = "false";

ua.max_mailbox_size = -1;

ua.max_mailbox_msgs = -1;

int iRet = R_UserAccount.createUserAccount(env, rua);

return iRet;

}

/**

* 删除用户

*

* @return

*/

public static int deleteUserAccount() {

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

R_UserAccount rua = new R_UserAccount();

// rua.m_useraccount = new

rua.m_useraccount = new UserAccount();

UserAccount ua = rua.m_useraccount;

ua.username = "a2";

ua.m_domain = "a.com";

int iRet = R_UserAccount.deleteUserAccount(env, rua);

return iRet;

}

public static int changeUserPassword() {

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

R_UserAccount rua = new R_UserAccount();

// rua.m_useraccount = new

rua.m_useraccount = new UserAccount();

UserAccount ua = rua.m_useraccount;

ua.username = "a56";

ua.m_domain = "a.com";

//新密码

ua.setPassword("123");

int iRet = R_UserAccount.changeUserPassword(env, rua);

return iRet;

}

public static int getNewMsgNum() {

// 建立调用环境

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

// 建立R_UserAccount api对象

R_UserAccount rua = new R_UserAccount();

// 指定要取最新邮件数的用户

rua.m_useraccount = new UserAccount();

UserAccount ua = rua.m_useraccount;

ua.username = "a56";

ua.m_domain = "a.com";

// 调用api取最新邮件数的用户

int iRet = R_UserAccount.getNewMsgNum(env, rua);

return iRet;

}

public static int sendMail(){

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

// 参数说明：

//env , 发件人域，发件人用户名，收件人邮件地址，标题，内容

int iRet = R_MessageAdmin.sendMessage(env, "a.com", "a2",

"a1@a.com", "test中文标题 subject", "test中文邮件体 body");

return 0;

}

public static int testAuth(){

Env env = Env

.getEnv("http://localhost:8080/mailmain", "admin", "admin");

// 参数说明：

//env , 发件人域，发件人用户名，收件人邮件地址，标题，内容

int iRet = R_UserAccount.auth(env, "w99", "w.com","w4");

return iRet;

}

}

3）JAR API 调用接口说明：

一． com.jdmail.web.MailMain

系统主入口点，当WEBMAIL 启动时，服务器执行其中的init 进行系统初始化工作。

主要成员变量：

1． public static ServerConf s_config

参考“二”

二． com.jdmail.web. ServerConf

系统执行时，环境变量管理类。通过该类可获得WEBMAIL时的各种执行路径值。

主要方法：

1． public String getTempPath()；

获得临时目录。

2． public String getLogPath()；

或得WEB 日志目录。

3． public long getSessionTimeout()；

获得用户Session 超时值。

4． public String getBackupPath()；

获取系统备份目录。

5． public String getMailServerPath()；

获取服务器安装目录。

6． public String getMailDirPath()；

获取MAILDIR 目录。

7． public String getServerTempPath()；

获取服务器临时目录。

8． public String getSpoolLocalPath()；

获取本地处理队列目录。

三． com.jdmail.web. MailSession

本类用于表示用户连接SESSION。

主要方法：

1． public void update()；

更新SESSION。

2． public String getTempPath()；

获取用户临时目录。

四． com.jdmail.web. SessionAdmin

本类用于管理用户SESSION。

主要方法：

1． public void logout(String id)；

注销用户SESSION。Id 为WEB服务器的SESSION ID。

五． com.jdmail.web. UserInfo

本类代表一个成功登录用户。

主要变量：

1． public String domain

用户的域。

2． public String ip

用户的登录IP

3． public UserAccount account ;

用户帐号信息。

4． public UserProfile profile

用户个人配置信息。

5． public UserSignature us_signature

用户签名档信息。

主要方法：

1． public String getUid()

获取用户ID（用户名）。

2． public UserSpace getUserSpace()

获取用户使用空间。

3． public boolean LockUserPop3()

临时给用户加POP3锁。

4． public void UnLockUserPop3()

解用户POP3锁

5． public boolean LockUserMsgID()

加用户MSGID 锁

6． public void UnLockUserMsgID()

解用户MSGID 锁。

六． com.jdmail.util. TMConfig

本类表示系统配置。

主要变量：

参考server.xml 服务器文件。

主要方法：

1． public void init(String filename)

初始化类，filename server.xml文件路径。

2． public void save()

保存系统配置

七． com.jdmail.util. UserAccount

本类代表用户帐号信息。

主要变量：

本类变量与account 表（或account.xml 文件）相对应。

主要方法：

1． public void init(String filename)

初始化类。Filename 为acount.xml 文件路径。

2． public void init(String filename,String profilefile)

初始化类。Filename 为acount.xml 文件路径。Profilefile 为profile.xml文件路径。

3． public void mysqlInit(String domain, String username,boolean bInitProfile)

数据库方式初始化类。bInitProfile 表示是否载入用户profile 信息。

4． public int save(boolean isNew,boolean alreadyCheck)

保存用户信息。

isNew – 用户是否是新增用户

alreadyCheck – 用户信息有效性是否已检查

返回值：

0 – 成功

1 – 失败，已超出域总分配空间。

2 – 失败

5． public int saveProfile(boolean isNew,boolean alreadyCheck)

保存用户信息，同时保存用户profile 信息。

6． public int mysqlSave()

数据库方式保存用户信息。

八． com.jdmail.util. UserProfile

本类表示用户个人信息。

主要变量：

本类变量与profile 表（或profile.xml 文件）相对应。

九． com.jdmail.util. UserSignature

本类表示用户签名档。

主要变量：

本类变量与signature表（或signature.xml 文件）相对应。

十． com.jdmail.util.UserSpace

本类表示用户空间使用情况。

主要变量：

1． public int iTotalSize

用户总分配空间。以K为单位。

2． public int iUsedSize

3． 已使用空间。以K为单位

4． public int iUnusedSize

未使用空间。

5． public int iPrecUsedSize

使用空间百分率。

6． public int iPrecUnusedSize

未使用空间百分率。

7． public int iMsgNum

用户邮件数。

十一． com.jdmail.web. DomainAdmin

域管理类。

主要方法：

1． public static void delete(String[] strDomains)

删除域，strDomains 要删除的域名数组。

十二． com.jdmail.web.DomainList

域列表。

主要方法：

1． public void init(String filename, String sqlWhere)

初始化类，filename domain.xml 文件路径，sqlWhere 域过滤条件。

2． public Domain find(String name)

3． 查找指定的域。

4． public Domain remove(String name)

从域列表删除域，注意，本方法并不是真正删除域目录。

5． public void save()

保存域列表

十三． com.jdmail.web.Domain

本类表示一个域。

主要变量：

本类变量与domains表（或domains.xml 文件）相对应。

主要方法：

1． public boolean makeDomain()

生成一个域，包括生成域目录。

返回值：true 成功，false 失败。

十四． com.jdmail.web.FolderAdmin

本类用于用户文件夹管理。

主要方法：

1． public static int add(String strDomain,String strUserName,String newFolder)

增加文件夹。

参数：

strDomain -- 域名

strUserName – 用户名

newFolder – 文件夹名，可用中文。

返回值：

0 – 成功

1 – 失败，文件夹已存在。

2 – 失败，生成文件夹失败。

2． public static int del(String strDomain,String strUserName,String sFolder)

删除文件夹

返回值：

0 – 成功

1 – 失败

3． public static int rename(String strDomain,String strUserName,String oldFolder,String newFolder)

重命名文件夹。

4． public static void save(String strDomain,String strUserName,ArrayList alFolder)

保存文件夹信息。对应于folder.xml 文件。

十五． com.jdmail.web. Folder

本类表示一个文件夹。

主要变量：

1． public String FolderName

文件夹编号

2． public String FolderDesc

文件夹显示名

3． public String ImapName

IMAP 文件夹名

4． public boolean Sub

是否被定阅

5． public int iTotalMsg

文件夹总邮件数。

6． public int iNewMsg

新邮件数

7． public int iReadMsg

以读邮件数

十六． com.jdmail.mime. Message

本类表示一封邮件。

在系统里，邮件分为四种格式：

1． MSG_MAIL 正常邮件格式

2． MSG_MAILDIR MAILDIR 里的邮件格式。

3． MSG_SPOOLLOCAL 本地处理队列邮件格式。

4． MSG_SPOOLQUEUE 正在处理队列里的格式。

主要方法：

1． public Message(int iFormat)

类构建方法，iFormat 邮件格式。

2． public int Open(String pszMsgFile)

打开邮件，pszMsgFile 邮件文件路径。

3． public int OpenWhole(String pszMsgFile, String sTempAttachPath)

打开邮件，并解包附件到sTempAttachPath目录。

4． public int Close()

关闭邮件

十七． com.jdmail.mime. MimePart

邮件的MIMEPART 部分。

主要变量：

1． public long m_i_PartStart

本部份开始位置。

2． public long m_i_PartEnd

本部份结束位置。

3． public long m_i_BodyStart

本部份BODY开始位置。

4． public int iIsMessage_RFC822

本部分是否是一个RFC822格式体。

5． public MimeHeader m_MimeHeader

邮件头。

十八． com.jdmail.mime. MimeHeader

邮件头。

主要变量：

1． public Vector m_pSL_HeaderPair

值对表。

2． private Vector m_pSL_ContentTypeParamPair

ContentType 参数表。

主要方法：

1． public HeaderPair FindHeaderPair(String pKey)

查找值对。

2． public HeaderPair FindContentParam(String pKey)

查找ContentType 参数

十九． com.jdmail.mime. HeaderPair

邮件头值对。

主要变量：

1．public String m_pKey

参数名

3． public String m_pValue

参数值。

二十． com.jdmail.mime. MimeAttach

邮件附件。

二十一． com.jdmail.web. MessageAdmin

邮件管理。

主要方法：

1． public static int getMsgCount(String strDomain,String strUserName,String strFolder)

获取用户指定文件夹里的邮件数。

2． public static ArrayList getFolderList(String strDomain,String strUserName,int iFlag)

获取用户的文件夹列表。

3． public static Folder findFolder(ArrayList alFolder,String name)

查找指定用户的文件夹。

4． public static ArrayList getMsgList(String strDomain,String strUserName,String strFolder, int iFrom,int iItems,int SortType)

或取指定用户指定文件夹邮件列表。

5． public static Message getMsg(String strDomain,String strUserName,String strFolder,String iItems)

获取用户指定的邮件。

6． public static void moveMsg(String strDomain,String strUserName,

MailSession ms,String mbid,String org_mbtype, String new_mbtype,String[] msgnums)

移动用户邮件。

7． public static void deleteMsg(String strDomain,String strUserName,

MailSession ms,String mbid,String mbtype,String[] msgnums)

删除用户邮件。


2.Jdmail短信接口开发方法.448824

2. Jdmail短信接口开发方法

1）概述

系统所有发送短信功能通过调用实现接口：jdmail.mobile.sms. SendSMSInterface 的send 方法进行短信发送。

jdmail.mobile.sms. SendSMSInterface接口代码结构如下：

package jdmail.mobile.sms;

public interface SendSMSInterface {

public int send(String Phone, String Content);

}

其中：

Phone ―― 接收人手机号码

Content―― 短信文本内容

短信接口实现类例子：

package jdmail.mobile.sms;

public class TestSendSMS implements SendSMSInterface{

public int send(String sPhone, String strContent){

System.out.println("send sms mobile:" + sPhone + " content:" + strContent);

return 0;

}

}

系统内置默认实现的短信发送类：jdmail.mobile.sms.SendSMS ，是通过标准的短信猫进行发送短信。

2）开发步骤

①．编写实现接口jdmail.mobile. sms. SendSMSInterface 的类，在结构方法send 中加入自己发送短信的代码。如：TestSendSMS

②．把实现类打包成.jar 文件和相关的依赖库放在 web/webapps/ROOT/WEB-INF/lib 目录下。

③．在系统设置 → 短信设置的“SMS 发送实现类”项写入类的全名。

④．重启webmail 服务器

3）测试方法

在短信测试部分，输入测试接收手机号码和短信文本内容，点击发送测试，进行测试。


3.Jdmail彩信及插件Plugin开发方法.457127

3. Jdmail 彩信及插件Plugin开发方法

1）概述

客户可通过邮件系统plugin 功能为系统插入额外的邮件处理功能。如：提取邮件内容，保存邮件内容到数据库等等。

邮件系统提供基于java 的plugin 开发接口，所有的客户化plugin 存在于plugin 服务器中。

Plugin 服务器与邮件服务器的关系如下：

客户可通过定义过滤规则，当邮件满足一定条件时，触发对plugin 的调用，此时邮件服务器会通过TCP/IP协议发送plugin 调用请求到plugin 服务器，plugin 服务器根据提交的请求调用合适的plugin组件。

2）Plugin开发步骤

① 编写实现接口jdmail.api.Action 的类，在方法doAction 中加入自己的代码。如：TestAction。

其中doAction 的参数如下：

String[] args ―― 为邮件服务器传入的参数组。

args[0] ―― 调用的plugin 类名全称。

args[1] ―― 邮件路径。

方法返回值：

0 -- 成功执行

1 -- 返回失败， 邮件系统不再处理该邮件

以下为一个plugin 的简单例子：

package jdmail.api;

import java.io.FileOutputStream;

import jdmail.mime.Message;

import jdmail.web.MailMain;

import jdmail.web.ServerConf;

import jdmail.mime.HeaderPair;

public class TestMailAction implements Action{

/*

* (non-Javadoc)

* @see jdmail.api.Action#doAction(java.lang.String[])

* args[0] ---类名

* args[1] --- 邮件目录

* args[2] --- 相关参数字串

*

* @return

* 0 -- 成功执行

* 1 -- 返回失败， 邮件系统不再处理该邮件

*

*/

public int doAction(String[] args) {

try {

//建立系统环境

MailMain.s_config = new ServerConf();

try {

//新建邮件类，注意邮件类型必须为Message.MSG_SPOOLQUEUE

Message tempMsg = new Message(Message.MSG_SPOOLQUEUE);

//打开邮件

tempMsg.OpenProfile(strTempMsgFile);

//取发件人

HeaderPair pHP = tempMsg.m_MimePart.m_MimeHeader.FindHeaderPair("from");

if(pHP!=null)

System.out.println( "subject:" + pHP.m_pValue);

//取收件人

pHP = tempMsg.m_MimePart.m_MimeHeader.FindHeaderPair("to");

if(pHP!=null)

System.out.println("to:" + pHP.m_pValue);

//邮件主题

pHP = tempMsg.m_MimePart.m_MimeHeader.FindHeaderPair("subject");

if(pHP!=null)

System.out.println("subject:" + pHP.m_pValue);

//设置附件临时目录

String href_prefix = "c:\\temp";

//取邮件显示内容, sbEncode 为邮件内容charset 编码

StringBuffer sbEncode = new StringBuffer();

String strContent = tempMsg.GetShowMsg(href_prefix, 0, true, sbEncode);

System.out.println("content:" + strContent);

//关闭邮件

tempMsg.Close();

fos.close();

} catch (Exception mimex) {

mimex.printStackTrace();

}

} catch (Exception e) {

e.printStackTrace();

}

return 0;

}

}

② 把实现类打包成.jar，并在plugin 服务器的启动脚本（windows 系统为startserver.bat ，unix 系统为startserver.sh）中指明.jar 文件路径。如实现类的包名test.jar，同时test.jar 放在plugin 安装目录下，则需要把启动脚本内容更改如下：

Java -classpath %PI_HOME%\pluginserver.jar; %PI_HOME%\turbomail.jar; %PI_HOME%\jsdk22.jar； %PI_HOME%\test.jar turbomail.pluginserver.MainServer

这样就可把plugin 安装在plugin 服务器上。

③ 配置过滤规则。只有全局过滤规则才支持plugin调用。在全局过滤规则 → 系统接收规则，增加新的触发plugin 过滤规则。

在“执行动作“项，选择”Plugin（java处理类）“ ， 填入Plugin 实现类全类名。

截图的过滤规则意思是，但系统接收到所有邮件，将会调用Plugin （jdmail.api.TestAction）。

3）Plugin 服务器安装

Plugin 服务器软件是一个压缩文件包，解压缩后即可使用。

请注意，Plugin 服务器，必须安装在可读写邮件服务器temp 目录的机器上，否则Plugin 读取不到要处理的邮件信息。

启动脚本，windows 启动脚本是startserver.bat， Unix 启动脚本是startserver.sh。

配置文件为 conf/sys.conf， 以下为配置文件样本：

#服务器配置

#最大连接数socket

max_sockets = 200

#最大连接处理数

max_connections = 100

#Plugin服务端口号

port = 8989

#网络 超时秒

net_timeout = 200

login_username=admin

login_password=admin

在 log 目录可查看各种服务器日志信息。

4）Plugin服务参数

进入邮件系统管理界面，进入系统设置 → Plugin服务参数。

其中：

Plugin 服务器IP ，为plugin 服务器运行的IP 地址。

Plugin 服务器端口，此参数根据Plugin 服务器 的 conf/sys.conf 所配置参数来设置，默认为8989。

5）测试方法

可用系统默认实现的jdmail.api.TestAction 测试plugin 相关服务是否配置正常。当正常调用此plugin，会往pluginserver\log\stdout.log 输出一行以下内容：

call plugin TextAction


十九.Jdmail的服务内容.497166

十九. Jdmail的服务内容

服务项目 | 服务内容
系统安装 | 为最终用户提供邮件系统安装，做系统优化配置，并根据客户要求修改页面图片、文字信息。Jdmail版权信息需要保留。
管理员培训 | 提供产品使用手册，对邮件系统管理员进行安装、配置、二次开发、备份、日常维护等方面的培训。
技术支持和运行维护 | 解决系统在运行中的技术故障，保障提供每周5天，每天8小时电话咨询服务和远程技术支持服务，如果电话和远程解决不了问题，将派专业技术人员都现场排除故障、解决问题。免费服务期过后，按照优惠价格收取升级、服务费。
系统升级扩容 | 在一年免费服务期内，如果邮件系统升级扩容，我方负责操作系统平台免费迁移。如果在一年免费服务期内用户方邮件系统版本升级，我方免费为用户提供升级服务；超过一年免费服务期，我方给予升级优惠。
二次开发 | 我方免费提供二次开发接口，并对客户提供必要的开发支持。如需我方提供开发服务，双方需另行商定开发费用，我方应给予优惠。


二十.常见问题回答.502299

Powered By Gisun http://www.gisun.com

二十. 常见问题回答


1.安装方面.502608

1. 安装方面

1）安装jdmail需要具备哪些条件？

a) PC Server 586以上CPU，内存256M以上

b) 有域名且有固定IP地址（如果只是用于内部邮件收发，则不需要）

c) 有互联网接入带宽

2）Jdmail支持哪些操作系统？

a) Window nt/2000/xp/2003

b) Redhat 7/8/9/FC1/FC2/FC3 ,ES3,AS3/AS4, redflag, turbolinux

c) Solaris7/solaris8 sparc

3）金笛邮件系统20用户试用版和正式版有何区别？

试用版每发一封邮件，在邮件正文尾部会自动加一金笛网址，最多可以开设20用户。除此之外功能方面没有任何区别。

4）系统安装完毕后，后台登录密码是什么？

管理员登录名默认是postmaster,没有密码，可以点击登录按钮直接登录。

5）系统安装完毕后，登陆入口是什么？

打开浏览器，地址栏输入：http://localhost:8080/maintlogin.jsp 进入系统管理界面。

打开浏览器，地址栏输入：http://localhost:8080/ 进入邮件系统普通用户界面。

注意：在邮件服务器本机操作是localhost，如果不是本机，需要改为IP地址。

6）如何去掉每次在地址栏输入的8080端口号？

修改文件：c:\jdmail\web\conf\server.xml

<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" />

将8080改为80，重新启动jdmail_web服务进程，即可。

7）Jdmail在windows2003系统安装完毕后，jdmail_server进程会启动失败？

原因一：Windows 2003系统自带smtp service ，占用25号服务端口，致使金笛邮件不能正常启动；

解决办法：通过控制面板 → 管理工具 → 服务找到：

Simple mail transport protocol 直接禁用即可。

原因二：Windows操作系统已经安装了杀毒软件如瑞星或者norton，占用了25号端口；

解决办法：杀毒软件一般都有一个选项，禁止对mail进行扫描即可。

原因三：以前安装过其它邮件服务系统；

解决办法：进入windows命令行模式，敲入

C:\> telnet localhost 25

会显示一行信息，根据这个信息即可判定为何种邮件服务软件，禁用该软件即可。

8）Jdmail安装完毕，为什么收不到邮件？

原因一：DNS MX 记录还没有指向安装邮件系统的服务器IP

解决办法：修改DNS MX记录，使之指向正确IP即可。

原因二：防火墙没有开放25号端口，致使外部邮件服务器无法和该邮件服务器建立会话；

解决办法：在防火墙上开放25、110端口。

9）Jdmail 在windows2003系统安装完毕后，web页面为什么打不开？

Jdmail web管理使用8080端口，windows2003 下8080 端口有时会被占用。如果被占用，可以修改 c:\jdmail\web\conf\server.xml

<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" />

将8080改为8090。

10）Jdmail安装完毕，为什么发不出去邮件？

原因一：jdmail没有设置默认域

解决办法：用postmaster登录邮件管理后台，在域管理中将一个域名设为默认域即可。

原因二：DNS没有正确配置

解决办法：安装金笛邮件系统的服务器，需要配置为当地稳定的DNS。该服务器在不使用proxy的情况下，可以正确上网浏览网页，说明DNS配置没有问题。

原因三：该邮件服务器不能访问外部邮件服务器的25号端口

解决办法：检查网络和防火墙，确保可以正确连接外部邮件服务器的25号端口。

11）DNS MX如何设置？

一般在注册域名时，域名提供商都会给一个域名管理的web后台管理帐户，通过这个账户登录后台管理界面后，就可以操作设置DNS 的MX记录。

12）如何安装在指定目录下？

Windows版本，jdmail默认安装在c:\jdmail 目录下，安装时可以指定安装路径。

Linux和solaris版本，jdmail默认安装在 /jdmail目录下，如果想安装在其它目录下，直接修改 startjd.sh , 将JDMAIL_ROOT 改为指定目录即可。

13）如何设定开机后自动启动jdmail？

如果希望每次开机都自动启动金笛邮件服务，windows版本可通过控制面板 → 管理工具 →服务，找到jdmail_server和jdmail_web这2个服务，点右键，在属性中设为自动即可。Linux版本需要修改/etc/rc.d/rc.local，在最后增加2行：

/jdmail/startjd.sh &

/jdmail/web/bin/startup.sh &

14）如何定制修改登录界面？

如果希望更改登录界面风格，windows版本可以到c:\jdmail\web\webapps\ROOT , 修改相关login.jsp和maintlogin.jsp文件即可。Linux版本也是在ROOT目录下。


2.使用方面.527289

2. 使用方面

1）安装完毕之后，如何开始使用邮件系统？

安装完毕之后可以通过IE的地址栏，输入：http://xx.xx.xx.xx:8080/maintlogin.jsp，

用户名postmaster , 默认密码为空，直接点登录即可进入后台管理菜单。先通过域管理添加一个域，然后通过用户管理向域内添加用户。打开IE，在地址栏输入：http://xx.xx.xx.xx:8080，输入新添加的普通用户名和密码，即可进入普通用户收发邮件界面。

2）系统重新启动后，为何jdmail启动不了？

Jdmail一般都是有用户限制，如果添加的用户超过这个最大限制，下次操作系统重新启动后，jdmail服务将不能启动。

3）如何备份邮件系统？

Jdmail所有的用户数据、邮件内容存放在jdmail目录下，只要将该目录定期备份即可。

Windows 可以使用winzip、winrar等将该目录压缩一个包转移它处，linux可以使用tar命令备份:

# tar cvzf mailbackup-20060206.tar.gz /jdmail

另外jdmail提供web备份办法，可以通过postmaster登录后台直接备份并打包下载。

4）如何恢复邮件系统？

如果系统重新安装，只要从压缩包恢复accounts 和conf，覆盖同名文件即可。

另外，如果是通过web备份的打包文件，可以直接登录postmaster后台，上传备份文件后，由系统自动恢复。

5）密码遗忘，怎么办？

假如是普通用户密码遗忘，需要管理员登录后台，重置密码；

假如是管理员密码遗忘，可以到C:\jdmail\accounts\root\postmaster目录下，用文本编辑器打开account.xml文件，找到

<general>

<username>postmaster</username>

<password></password>

<usertype>S</usertype>

</general>

将<password>和</password>之间的部分删除。这时postmaster可以需要密码即可登录。


3.升级方面.535953

Powered By Gisun http://www.gisun.com

3. 升级方面

1）如何升级jdmail？

先暂停jdmail_server,jdmail_web2个服务，将安装目录下的accounts和conf目录拷贝备份，然后卸载jdmail，安装新版本后，将上述2个目录拷回原位置即可。


4.购买产品和服务方面.537212

4. 购买产品和服务方面

1）哪里可以买到金笛邮件系统？

如果当地有代理商或者经销商，可以直接通过他们购买；如果当地暂时没有金笛的代理，可以直接和我公司市场部联系购买。联系电话：010-82356575/76/77

2）购买步骤如何？

签订定货合同 → 支付首付款 → 款到后快递产品光盘，说明书, 发放注册码 → 结清尾款

汇款后，请尽快将汇款底单以传真形式发给我公司签约的业务员。传真号为：010-82356577-6004。

如果办理电汇，为避免不必要的麻烦，请务必仔细认真填写电汇单据：

开户行：交通银行亚运村支行

开户名称：北京春笛网络信息技术服务有限公司

帐号：110060210012015146729

金笛邮件安装介质包采用EMS或快递寄送, 一般两天内寄到。

3）正式版本用户可以得到什么？

a) 安装介质光盘一张；

b) 安装使用手册一本；

c) 注册码一个；

d) 正式发票(普通或增值税)；

e) 一年内的免费技术支持和免费升级服务

4）我已经安装了金笛邮件系统试用版，购买了正式版是否需要重新安装？

不需要。只要输入授权注册码即可。

5）购买了jdmail，想增加用户数，怎么办？

直接按照每用户xx元*需增加的用户数打款，重新输入注册码即可。

6）金笛邮件系统保修期为多长时间？ 在保修期内，可以享受哪些服务？

保修期为注册码发放之日起，一年内。一年后按照合同额的20%收取服务费。在保修期内，可以享受如下服务内容：

· 在5*8小时工作时间内，提供Email、电话、远程SSH的技术支持；

· 免费升级到最新版本；

· 在5*8小时工作时间内，保证用户邮件系统正常运行。解决包括被列入垃圾IP地址数据库等非邮件系统本身产生的问题；

· 根据顾客需要定制邮件系统登录页面；

· 定期升级邮件系统病毒库和垃圾邮件规则库

7）服务到期后，如何进行续约？

双方需签订服务合同。


第二章普通用户部分.548031

Powered By Gisun http://www.gisun.com

第二章 普通用户部分


一.webmail功能详解.548356

Powered By Gisun http://www.gisun.com

一. webmail功能详解


二.OUTLOOK、OUTLOOKExpress配置.548666

二. OUTLOOK、OUTLOOK Express 配置

1. 首先，启动Outlook Express；

2. 从菜单中选择"工具/帐号"菜单项，打开"Internet 帐号"窗口；

3. 单击"邮件"标签（默认）；

4. 单击"添加"按钮，从弹出的菜单中选择"邮件"选项将弹出Internet连接向导；

5. 首先输入您的"显示姓名"，此姓名将出现在您所发送邮件的"寄件人"一栏，单击"下一步"按钮；

6. 在弹出的窗口中输入您的金笛企业邮箱邮件地址，如：jindi@mailer.com.cn，单击"下一步"按钮；

7. 在弹出的"电子邮件服务器名"窗口中，系统默认"我的接收邮件服务器"为"POP3"，不需要修改；在接收服务器框中，输入企业邮箱邮件的POP3服务器名称，比如：pop.mailer.cn；在外发送邮件服务器框中，输入企业邮箱邮件的发件服务器，比如：smtp.mailer.cn,单击"下一步"按钮；

8. 在弹出的窗口中分别输入您的企业邮箱的帐号名和密码。其中帐号名就是您的企业邮箱地址，如：jindi@mailer.com.cn；为了确保安全，密码显示为星号。如果没有输入密码或输入密码有误，系统会在接收邮件时提示输入密码。单击"下一步"按钮；

9. 弹出"祝贺您"窗口，单击"完成"按钮返回上层窗口；

10. 单击"属性"按钮，打开设置窗口，单击"服务器"选项卡，在窗口下方，勾选"我的服务器要求身份验证"，然后单击"确定"返回；

11. 完成以上设置之后，您就可以单击窗口中的"发送接收"工具按钮进行金笛企业邮箱邮件的收发了。


三.FOXMAIL配置.559659

三. FOXMAIL配置

提示：使用Foxmail收发邮件前，请首先到Foxmail网站下载最新版的Foxmail安装或升级，然后按照以下方法进行设置：

1. 单击主菜单中的"邮箱"，选择"新建邮箱帐户"菜单项；

2. 打开Foxmail用户向导，如下图所示，按照要求填写好您的邮箱地址和密码；

3. 单击"下一步"按钮打开"指定邮件服务器"窗口，如下图所示，在“POP3服务器”处填写企业邮箱邮件的POP3服务器名称，比如：pop.mailer.cn，在“SMTP服务器”处填写企业邮箱邮件的发件服务器，比如：smtp.mailer.cn，在“POP3帐户名”处填写您的邮件地址；

4. 单击"下一步"按钮打开"帐户建立完成"提示页面，如下图所示，单击"完成"按钮关闭窗口，并回到Foxmail邮件夹页面，新建立的帐户将显示在Foxmail的主页面；

5. 选中新建立的邮箱，再点击主菜单中的"邮箱"，选择"修改邮箱帐户属性"菜单项；

6. 打开如下邮箱帐户属性页；

7. 点击左侧的邮件服务器，在SMTP服务器需要身份验证前面打钩，然后点击确定；

8. 完成以上设置之后，您就可以进入Foxmail，并单击"收取"和"发送"按钮来收发企业邮箱邮件了。