EMOS邮件系统问题及解决方法【更新中】

本文使用的EMOS版本为1.5 64bit  extmial 基于Centos release 5.3 定制系统,部署在IaaS私有云KVM虚拟机中,以下是部署与使用中遇到的问题及解决办法

一、更改WEB登录界面LOGO

1、替换 /var/www/extsuite/extmail/html/default/images/logo.gif 即可。

2、更改/var/www/extsuite/extmail/html/default/index.html 中src="/extmail/default/images/logo.gif" 字段也可。

 

二、Postfix限制部分用户发送和接收外部邮件

 

修改/etc/postfix/main.cf 文件,加入如下内容

# smtpd related config

smtpd_restriction_classes = local_out local_in   定义类

local_in = check_recipient_access hash:/etc/postfix/local_domains,reject   定义本域

local_out = check_sender_access hash:/etc/postfix/local_domains,reject

smtpd_recipient_restrictions =

check_sender_access hash:/etc/postfix/local_out

check_recipient_access hash:/etc/postfix/local_in

permit_mynetworks,

permit_sasl_authenticated,

reject_non_fqdn_hostname,

reject_non_fqdn_sender,

reject_non_fqdn_recipient,

reject_unauth_destination,

reject_unauth_pipelining,

reject_invalid_hostname,

#       check_policy_service inet:127.0.0.1:10030

 

新建 local_domains 文件,定义域

test.com OK

新建 local_out 定义只可发送指定域名的用户

www@test.com local_out

zzz@test.com local_out

新建 local_in 定义只可接收指定域名的用户

yyy@test.com local_in

xxx@test.com local_in

postmap hash:/etc/postfix/local_in

postmap hash:/etc/postfix/local_out

重新加载配置文件 postfix reload

三、邮箱首页更改LOGO及背景图片

1、更改主页背景图片

更改login.css 文件中 .ms1 { background:url(/extmail/default/images/top.jpg) top no-repeat #fffdfd;} 字段,这里还可以更改背景图片区域的颜色。

更改login.css 文件中 #mantle { width:800px;margin:auto; clear:both; position:relative; top:0; left:0; margin-top:20px;} 字段,改变width 大小改变背景区域的宽度。

更改login.css 文件中 #mantle .fix { height:400px !important; height:154px;} 字段,改变height 大小改变背景区域的高度。

更改login.css 文件中 #phd {CLEAR: both; height:100px;FONT-SIZE: 12px; MARGIN: 0px auto 0px; WIDTH: 800px;} 字段,改变height 值可改变背景区域到顶部的距离。

2、更改登录后的使用区域到顶部距离

更改newstyle.css文件中 #TopBan {width:100%;height:100px;padding:0px;margin:0px;} 字段,改变height值可以改变使用区域到顶部的距离。

四、实现简单的邮件监控

任何用户的发件都抄送到制定的邮箱账户一份

在/etc/postfix/main.cf 加入一行

always_bcc = xxx@test.com

 五、EXTMAIL 配置文件参数详解

项目主页:

http://www.extmail.org

最后更新:2008-04-29

本文档详细讲述Extmail的配置参数,给用户提供Extmail配置参数的使用参考。

本文档假设读者具有一定的Unix平台 / Linux平台系统经验,懂得vi编辑器的基本使用,并且懂得基本Extmail系统的

[url=javascript:;]安装[/url]

(具体Extmail系统安装问题请参考相关Extmail HOWTO)。

本文档所有内容基于ExtMail 1.0.4 和

[url=javascript:;]ExtMan[/url]

0.2.4版本,并由Extmail项目组根据Extmail项目的建设和发展,适时予以更新。如

[url=javascript:;]手册[/url]

与实际项目情况有冲突,以文档服从实际为原则。

一、webmail.cf

介绍:

webmail.cf文件用来对webmail的核心配置进行设定,该配置

[url=javascript:;]文件[/url]

对Extmail至关重要。

存放路径:

/var/www/extsuite/extmail/webmail.cf

注:如果没有按照官方HowTO安装系统,路径可能会有所不同,请根据您系统的实际情况而定。

参数说明:

SYS_CONFIG =

# 程序根目录路径,此路径必须指向extmail目录;

SYS_LANGDIR =

# 语言包目录路径,此路径必须指向extmail/lang目录;

SYS_TEMPLDIR =

# 系统模板目录路径,此路径必须指向extmail/html目录;

SYS_SHOW_WARN =

# 设置为1时,打印隐含的系统警告信息到标准输出(网页),默认为0;

SYS_PERMIT_NOQUOTA =

# 设置为0时,系统将不限制邮箱容量,默认设置为1;

SYS_SESS_DIR =

# 系统当前会话文件的保存目录,默认为/tmp/;

SYS_LOG_ON =

# 设置为1时系统将记录web登陆的日志,设置为0时不记录(日志记录在何处

# 由SYS_LOG_TYPE参数控制);

SYS_LOG_TYPE =

#  系统log的记录方式;分以下3种情况:

#  file:自定义文件(具体文件,由SYS_LOG_FILE参数控制);

#  syslog:系统syslogd指定的mail.*文件;

#  nosyslog:系统syslogd指定的非本机的log文件;

SYS_LOG_FILE =

# 若sys_log_type 参数设置为files,此项指定files文件路径;

SYS_SESS_TIMEOUT =

# 系统超时设置,默认为3小时;

# 格式number+(s|m|h|d|M|y); 或者单纯数字,0代表系统超时为0秒

# 但是如果参数sys_sess_cookie_only设置为1则代表会话将在关闭浏览器后过期;

SYS_SESS_COOKIE_ONLY

# 该参数是指SID获取的来源。如果设置为1,则只根据cookie里的SID来获得,如果设置

# 为0,则同时从cookie及URL里取,如果没cookie则从URL里取。一般对于不支持cookie

# 的浏览器,得设置为0;

SYS_USER_PSIZE =

#  webmail列表时,每页显示邮件数。默认10;

SYS_USER_SCREEN =

# 屏幕显示分辨率设置,默认auto;

# auto    => full text

# screen1 => 800×600

# screen2 => 1024×768

# screen3 => 1280×1024

SYS_USER_LANG =

# 用户默认语言,

[url=javascript:;]中文[/url]

可以设置为zh_CN;

SYS_APP_TYPE =

# 当前配置文件对应的应用程序类型。必须填写Webmail;

SYS_USER_TEMPLATE =

# 指定界面风格模板文件,默认为default;

SYS_USER_CHARSET =

# 指定用户默认字符集,中文可以设置为gb2312;

SYS_USER_TRYLOCAL =

# 系统默认编码为utf8,外发邮件时,该参数控制是否尝试将邮件内容转成其他内码

# 可以转成对应的本地编码,例如gbk、big5、shift-jis等,1转、0是不转;

# 注意:如果设置了0但用户在偏好设置需要转换,系统还是会转换内码;

SYS_USER_TIMEZONE =

# 指定用户默认时区,默认为东八区:+0800;

SYS_USER_CCSENT = 1

SYS_USER_SHOW_HTML = 1

SYS_USER_COMPOSE_HTML = 1

SYS_USER_CONV_LINK =1

SYS_USER_ADDR2ABOOK = 1

# 系统默认用户参数;

SYS_MESSAGE_SIZE_LIMIT =

# 该参数控制写邮件时,单封信件的最大尺寸。以byte为单位,比如: 5242880 代表5MB;

SYS_MIN_PASS_LEN =

# 指定邮件账户最短

[url=javascript:;]密码[/url]

长度,默认2;

SYS_MFILTER_ON =

# 过滤器开关;1为开,0为关;

SYS_NETDISK_ON =

# 网络磁盘开关;1为开,0为关;若设置了0,则即使在extman内打开用户网络磁盘功能

# 用户都不能使用该功能;

SYS_SHOW_SIGNUP =

# 首页“注册免费邮箱”的按钮显示开关;1为显示,0为关闭;

SYS_AUTH_TYPE =

# 系统认证方式, 可选:mysql/ldap/authlib;

SYS_MAILDIR_BASE =

# 邮件数据存放目录路径,必须使用绝对路径,比如:/home/domains;

SYS_AUTH_SCHEMA =

[url=javascript:;]virtual[/url]

# 该设置有3个参数:vpopmail1/vpopmail2/virtual;

# virtual即虚拟帐户;

# vpopmail1 => all user accounts in one table 为对qmail+vpopmail(

[url=javascript:;]mysql[/url]

版)的支持;

# vpopmail2 => accounts in per domain table 为对qmail+vpopmail(mysql版)的支持;

SYS_CRYPT_TYPE =

# 密码加密方式,支持以下方式:

# crypt|cleartext|plain|md5|md5crypt|plain-md5|ldap-md5|sha|sha1;

注:Extmail密码格式介绍:

一.   scheme(密码模型)

Extmail支持明文,crypt,md5,md5crypt,sha/sha1等主流的9-10种密码格式,

采用如下的方法映射:

CRYPT     => crypt

MD5       => md5

PLAIN-MD5 => plain_md5

LDAP-MD5  => ldap_md5

SHA       => sha

SHA1      => sha

CLEARTEXT => clear

PLAIN     => clear

二.   格式说明

Extmail可以辨认以下3种密码格式:

1.       $1$hhhhhh$xxxxxxxxxxx

该格式以md5()结果为基础,用一串hhhhhh(随机数)的hash对md5进行加密得到的密码,xxxxxxxxxxxxx  就是md5密文数据,它的特征是以$1$为前缀,符合此说明的格式就是md5crypt。

2.       {xxxx}yyyyyyyyyyyyyyy

该格式,{}里面是明文指定了密码模型,之后为加密数据。

比如:{MD5}xxxxxxxxxxxx,代表以MD5为加密方式,而xxxxxxxxxxxxx就是md5密文数据。

3.       xxxxxxxxxxxxxxxxxxxxx

该格式是没有任何特征的密文,如果采用该格式,必须手工在webmail.cf和webman.cf的SYS_CRYPT_TYPE参数指定密码格式。

SYS_MYSQL_USER =

# MYSQL数据库用户信息设置,默认为:extmail;

SYS_MYSQL_PASS =

# MYSQL数据库用户密码设置;

SYS_MYSQL_DB =

# MYSQL数据库名设置;

SYS_MYSQL_HOST =

# MYSQL数据库主机,默认为:localhost;

SYS_MYSQL_SOCKET =

# MYSQL数据库SOCKET位置设置,默认为:/var/lib/mysql/mysql.sock;

SYS_MYSQL_TABLE = mailbox

SYS_MYSQL_ATTR_USERNAME = username

SYS_MYSQL_ATTR_DOMAIN = domain

SYS_MYSQL_ATTR_PASSWD = password

SYS_MYSQL_ATTR_QUOTA = quota

SYS_MYSQL_ATTR_NDQUOTA = netdiskquota

SYS_MYSQL_ATTR_HOME = homedir

SYS_MYSQL_ATTR_MAILDIR = maildir

# Extmail使用的MYSQL表设置,请不要修改默认配置;

SYS_MYSQL_ATTR_CLEARPW = clearpwd

# 为了方便管理员对账户的管理,该设置用来保存明文密码;

# 如果不需要该功能请注释掉此设置;

SYS_MYSQL_ATTR_DISABLEWEBMAIL = disablewebmail

SYS_MYSQL_ATTR_DISABLENETDISK = disablenetdisk

SYS_MYSQL_ATTR_DISABLEPWDCHANGE = disablepwdchange

SYS_MYSQL_ATTR_ACTIVE = active

# attr_disable**主要是设置是否打开禁用某个特性的功能。如果注释掉

# 那么即使数据库存在这个字段也会无效。比如disablewebmail,即支持用户登录webmail。

# 注:修改过该设置后,用户必须logout才能生效;

SYS_LDAP_BASE = o=extmailAccount,dc=example.com

SYS_LDAP_RDN = cn=Manager,dc=example.com

SYS_LDAP_PASS = secret

SYS_LDAP_HOST = localhost

# LDAP配置信息;

SYS_LDAP_ATTR_USERNAME = mail

SYS_LDAP_ATTR_DOMAIN = virtualDomain

SYS_LDAP_ATTR_PASSWD = userPassword

# ldif配置属性;

SYS_LDAP_ATTR_CLEARPW = clearPassword

SYS_LDAP_ATTR_QUOTA = mailQuota

SYS_LDAP_ATTR_NDQUOTA = netdiskQuota

SYS_LDAP_ATTR_HOME = homeDirectory

SYS_LDAP_ATTR_MAILDIR = mailMessageStore

SYS_LDAP_ATTR_DISABLEWEBMAIL = disablewebmail

SYS_LDAP_ATTR_DISABLENETDISK = disablenetdisk

SYS_LDAP_ATTR_DISABLEPWDCHANGE = disablePasswdChange

SYS_LDAP_ATTR_ACTIVE = active

# 参见SYS_MYSQL_ATTR*相关解释;

SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket

# authlib socket存放位置;

SYS_G_ABOOK_TYPE =

# 全局地址本设置,可选ldap和file;

SYS_G_ABOOK_LDAP_HOST = localhost

SYS_G_ABOOK_LDAP_BASE = ou=AddressBook,dc=example.com

SYS_G_ABOOK_LDAP_ROOTDN = cn=Manager,dc=example.com

SYS_G_ABOOK_LDAP_ROOTPW = secret

SYS_G_ABOOK_LDAP_FILTER = objectClass=OfficePerson

#当SYS_G_ABOOK_FILE设置为ldap,对应LDAP的配置;

SYS_G_ABOOK_FILE_PATH = /var/www/html/extmail/globabook.cf

SYS_G_ABOOK_FILE_LOCK = 1

SYS_G_ABOOK_FILE_CONVERT = 0

SYS_G_ABOOK_FILE_CHARSET = utf-8

# 当SYS_G_ABOOK_FILE设置为file,对应file的配置;

二、webman.cf

介绍:

webman.cf文件用来对Extman的核心配置进行设定,该配置文件对Extman至关重要。

存放路径:

/var/www/extsuite/extman/webman.cf

注:如果没有按照官方HowTO安装系统,路径可能会有所不同,请根据您系统的实际情况而定。

参数说明:

SYS_CONFIG =

# 程序根目录路径,此路径必须指向extman目录;

SYS_LANGDIR =

# 语言包目录路径,此路径必须指向extman/lang目录;

SYS_TEMPLDIR =

# 系统模板目录路径,此路径必须指向extman/html;

SYS_MAILDIR_BASE =

# 邮件数据存放路径,必须为绝对路径,比如:/home/domains;

SYS_SHOW_WARN =

# 设置为1时,打印隐含的系统警告信息到标准输出(网页),默认为0;

SYS_SESS_DIR =

# 系统当前会话文件的保存目录,默认为/tmp/extman/;

SYS_CAPTCHA_ON =

# 设置为1需要认证码登录extman,0不需认证码;//如果不能正确显示验证码,请将这个值设为0

SYS_CAPTCHA_KEY =

# 认证码的key随便输入一个字符串就行;

SYS_CAPTCHA_LEN =

# 认证码的长度,默认为5;

SYS_PURGE_DATA =

# 该设置控制

[url=javascript:;]删除[/url]

用户时默认是否完全删除用户数据,0为否,1为是;

SYS_PSIZE =

#  用户或域列表时,每页显示数据数目。默认20;

SYS_APP_TYPE =

# 当前配置文件对应的应用程序类型。必须填写ExtMan;

SYS_TEMPLATE_NAME =

# 指定界面风格模板文件,默认为default;

SYS_DEFAULT_EXPIRE =

# 默认过期时间,格式:?y ?m ?d;

SYS_GROUPMAIL_SENDER =

# 使用群发邮件模块,系统默认的发件人,例:

postmaster@extmail.org



SYS_DEFAULT_SERVICES =

# 设置系统开放的功能,包括: smtpd, smtp, webmail, netdisk, imap, pop3

# (多参数以 "," 为分割符);

SYS_ISP_MODE =

# 是否采用ISP模式,格式:yes|no – 如果yes,系统将采用 HashDir 模式来存放数据目录;

SYS_DOMAIN_HASHDIR =

# 如果SYS_ISP_MODE =yes,此设置用来控制域目录是否采用HashDir 模式,格式:yes|no;

SYS_DOMAIN_HASHDIR_DEPTH =

# 域目录HashDir的设置, 格式:长度x深度,如:2×1 => 长度 =2, 深度 =1

# 注:该参数生效必须:sys_isp_mode = yes;

SYS_USER_HASHDIR =

# 如果SYS_ISP_MODE =yes,此设置用来控制用户数据目录是否采用HashDir 模式

# 格式:yes|no;

SYS_USER_HASHDIR_DEPTH =

# 参见SYS_DOMAIN_HASHDIR_DEPTH;

SYS_DOMAIN_ROUTING_LIST =

# 简单的分布存储设置,该参数为Domain级的路由设置。格式:transport 手册里规定的

# 格式都合法。如:lmtp:mx1.extmail.org,lmtp:mx2.extmail.org。

# 注意:必须设置 ISP_mode=yes才能生效;

SYS_USER_ROUTING_LIST =

# 简单的分布存储设置,该参数为User级的路由设置。格式:transport 手册里规定的

# 格式都合法。如:smtp:[192.168.2.130],smtp:[192.168.2.128]。

# 注意:必须设置 ISP_mode=yes才能生效;

SYS_MIN_UID =

# 系统最小UID设置;

SYS_MIN_GID =

# 系统最小GID设置;

SYS_DEFAULT_UID =

# 系统默认UID设置,如果为空,webman则忽略次参数;

SYS_DEFAULT_GID =

# 系统默认GID设置,如果为空,webman则忽略次参数;

SYS_QUOTA_MULTIPLIER =

# 该设置用来设定1MB的实际字节数;

SYS_QUOTA_TYPE =

# 空间限制方法参数设置,可用参数:vda|courier;

SYS_DEFAULT_MAXQUOTA =

# 添加域时,默认最大限额大小,单位MB;

SYS_DEFAULT_MAXALIAS =

# 添加域时,默认最大别名数;

SYS_DEFAULT_MAXUSERS =

# 添加域时,默认最大用户数;

SYS_DEFAULT_MAXNDQUOTA =

# 添加域时,默认最大网络磁盘限额,单位MB;

SYS_USER_DEFAULT_QUOTA =

# 添加用户时,默认磁盘限额,单位MB;

SYS_USER_DEFAULT_NDQUOTA =

# 添加用户时,默认网络磁盘大小,单位MB;

SYS_USER_DEFAULT_EXPIRE =

# 添加用户时,默认过期时间, 格式:?y ?m ?d;

SYS_BACKEND_TYPE =

# 系统后台数据库设置,可用参数:mysql|ldap;

SYS_CRYPT_TYPE = crypt

# 密码加密方式,支持以下方式:

# crypt|cleartext|plain|md5|md5crypt|plain-md5|ldap-md5|sha|sha1;

# 详见:webmail.cf SYS_CRYPT_TYPE  参数之Extmail密码格式介绍;

SYS_MYSQL_USER =

# MYSQL数据库用户信息设置,默认为:webman;

SYS_MYSQL_PASS =

# MYSQL数据库用户密码设置;

SYS_MYSQL_DB =

# MYSQL数据库名设置;

SYS_MYSQL_HOST =

# MYSQL数据库主机,默认为:localhost;

SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock

# MYSQL数据库SOCKET位置设置,默认为:/var/lib/mysql/mysql.sock;

SYS_MYSQL_TABLE = manager

SYS_MYSQL_ATTR_USERNAME = username

SYS_MYSQL_ATTR_PASSWD = password

# Extman使用的MYSQL表设置,请不要修改默认配置;

SYS_MYSQL_ATTR_CLEARPW = clearpwd

# 为了方便管理员对账户的管理,该设置用来保存明文密码;

# 如果不需要该功能请注释掉此设置;

SYS_LDAP_BASE = dc=extmail.org

SYS_LDAP_RDN = cn=Manager,dc=extmail.org

SYS_LDAP_PASS = secret

SYS_LDAP_HOST = localhost

SYS_LDAP_ATTR_USERNAME =

SYS_LDAP_ATTR_PASSWD =

# LDAP配置信息;

# SYS_LDAP_ATTR_CLEARPW = clearPassword

# 参见SYS_MYSQL_ATTR_CLEARPW相关解释;

SYS_RRD_DATADIR =

# rrd图形数据目录;

SYS_RRD_TMPDIR =

# rrd图形数据临时路径;

SYS_RRD_QUEUE_ON =

# 图形日志中,是否显示队列信息;

2014-10-23

解决DSPAM后台histroy标签无数据显示问题。

1、查看日志 /var/log/dspam/dspam.log

32705: [10/23/2014 10:47:16] received invalid result (! DSR_ISSPAM || DSR_INNOCENT) : -2

32705: [10/23/2014 10:47:16] process_message returned error -2.  delivering.

32705: [10/23/2014 10:47:21] query error: Table './dspam/dspam_token_data' is marked as crashed and should be repaired: see sql.errors for more details

32705: [10/23/2014 10:47:21] bailing on error -2

32705: [10/23/2014 10:47:21] received invalid result (! DSR_ISSPAM || DSR_INNOCENT) : -2

32705: [10/23/2014 10:47:21] process_message returned error -2.  delivering.

32705: [10/23/2014 10:48:02] query error: Table './dspam/dspam_token_data' is marked as crashed and should be repaired: see sql.errors for more details

32705: [10/23/2014 10:48:02] bailing on error -2

32705: [10/23/2014 10:48:02] received invalid result (! DSR_ISSPAM || DSR_INNOCENT) : -2

32705: [10/23/2014 10:48:02] process_message returned error -2.  delivering.

32705: [10/23/2014 10:49:26] query error: Table './dspam/dspam_token_data' is marked as crashed and should be repaired: see sql.errors for more details

32705: [10/23/2014 10:49:26] bailing on error -2

32705: [10/23/2014 10:49:26] received invalid result (! DSR_ISSPAM || DSR_INNOCENT) : -2

32705: [10/23/2014 10:49:26] process_message returned error -2.  delivering.

32705: [10/23/2014 10:47:48] query error: Table './dspam/dspam_token_data' is marked as crashed and should be repaired: see sql.errors for more details

32705: [10/23/2014 10:47:48] bailing on error -2

32705: [10/23/2014 10:47:48] received invalid result (! DSR_ISSPAM || DSR_INNOCENT) : -2

32705: [10/23/2014 10:47:48] process_message returned error -2.  delivering.

2、用myisamchk工具修复dspam数据库MYI文件

myisamchk -r /var/lib/mysql/dspam/dspam_token_data.MYI

问题解决。

发表评论