Qmail 维护文档

 

 

 

 

 

 service qmail stop
ps aux
 pkill imapd
 pkill qmail-popup
 pkill qmail-pop3d
 pkill couriertls
 service qmail start

1        Qmail 相关目录文件

//用户邮箱账户 所在的文件路径
/home/vpopmail/domains/

 

//qmail系统主目录
/var/qmail

 

//邮箱容量达到90%的警告信息文件路径
/home/vpopmail/domains/.quotawarn.msg

 

//邮箱已满的警告信息 文件路径
/home/vpopmail/domains/.over-quota.msg

 

 

 

2       Mysql 相关信息

2.1       Mysql 相关目录

       1qmail系统数据库目录

              /var/lib/mysql/vpopmail

      

       2mysql 配置文件

              /usr/share/mysql  (mysql.server命令及配置文件)

      

3mysql 相关命令

       /usr/bin     (mysqladmin mysqldump等命令)

 

4、启动脚本

/etc/rc.d/init.d/mysqld  start|stop|restart   (启动脚本文件mysql的目录)

 

2.2       mysql 登录

# mysql -uroot –xxxx

mysql> use vpopmail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

 

Database changed
mysql> select * from vpopmail;     //账户密码相关信息

3       Qmail使用说明

普通账户登陆页面      
http//192.168.0.X  (该页面目前只限制内网访问,所以只能通过ip访问,注意更改域名)
管理账户管理页面:   
       用户名:postmaster      域名:                  密码: xxxx

4       Qmail日常管理说明

4.1       Qmail启停脚本

/usr/bin/qmailctl  {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}

4.2       新增邮箱用户(列表)

方法一: 通过管理界面操作(http://xxxx/cgi-bin/qmailadmin
       方法二: 登陆qmail服务器
                     # vadduser -q 10485760S(邮箱大小)  test@domain.com(邮箱帐号) 123(密码)

 

       新增邮箱域名
       #vadddomain  test.com  (域名名称)

5       Qmail故障排查

5.1       qmail系统相关日志

/var/log/maillog
/var/log/qmail/current
/var/log/qmail/pop3d/current    
/var/log/qmail/pop3ds/current
/var/log/qmail/smtpd/current

5.2       Qmail进程检查

系统正常时
#ps –ef|grep qmail  会包括以下进程
root      5170  5167  0 Mar17 ?        00:00:00 supervise qmail-pop3d
root      5172  5167  0 Mar17 ?        00:00:00 supervise qmail-send
root      5174  5167  0 Mar17 ?        00:00:00 supervise qmail-smtpd
root      5176  5167  0 Mar17 ?        00:00:00 supervise qmail-pop3ds
qmaill  5223  5175   0 Mar17 ?     00:00:00 /usr/local/bin/multilog t /var/log/qmail/smtpd
qmaill    5225  5171  0 Mar17 ?        00:00:00 multilog t /var/log/qmail/pop3d
qmaill    5227  5177  0 Mar17 ?        00:00:00 multilog t /var/log/qmail/pop3ds
qmaill    5228  5173  0 Mar17 ?        00:00:00 /usr/local/bin/multilog t /var/log/qmail
vpopmail 13611  5170  0 Mar18 ?        00:00:00 /usr/local/bin/tcpserver -l 0 -R -H -v -u89 -g89 0 110 /var/qmail/bin/qmail-popup localhost.localdomain /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
vpopmail 13615  5176  0 Mar18 ?        00:00:00 /usr/local/bin/tcpserver -l 0 -R -H -v -u89 -g89 0 995 /usr/sbin/stunnel -f -p /var/qmail/control/servercert.pem -l /var/qmail/bin/qmail-popup -- qmail-popup localhost.localdomain /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
qmails   18558  5172  0 Mar18 ?        00:00:00 qmail-send
vpopmail 18559  5174  0 Mar18 ?        00:00:00 /usr/local/bin/tcpserver -v -H -R -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c 20 -u 89 -g 89 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true
root     18563 18558  0 Mar18 ?        00:00:00 qmail-lspawn ./Maildir/
qmailr   18564 18558  0 Mar18 ?        00:00:00 qmail-rspawn
qmailq   18565 18558  0 Mar18 ?        00:00:00 qmail-clean

 

 

其中,进程qmail-lspawn 负责本地邮件投递,qmail-rspawn 负责远程投递,qmail-clean用于清除qmail queue中已处理的邮件。

5.3       故障案例

故障描述: qmail 邮件服务器,有时发信提示:SMTP Server reply: 421 out of memory (#4.3.0) ,

故障解决:将 softlimit 值设置大点  

在路径   /var/qmail/supervise/qmail-smtpd /run

以下是 qmail-smtpd 的启动脚本, softlimit m 后的值你可以慢慢调试,
exec /usr/local/bin/softlimit -m 10000000 \

    /usr/local/bin/tcpserver -v -H -R -l 0 \

    -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \

    -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \

    /var/qmail/bin/qmail-smtpd \

/home/vpopmail/bin/vchkpw /bin/true 2>&1

 

 

故障描述: 邮箱账户客户端收发邮件的时候,不需要密码验证也能发送

故障解决: 设置 smtp 规则,关闭 open relays

           #echo '127.0.0.1:allow,RELAYCLIENT=""' > /home/v

#cd /home/vpopmail/etc                         

#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp 
 
 
 
 

 

 

 

 

 

通过命令 管理列表 #创建列表 maillist,其中 maillist为列表名称,example.com 为域名

一.创建邮件列表:
[root@mail ~]# cat addlist.sh
while read name; do
ezmlm-make -dA /home/vpopmail/domains/example.com/$name /home/vpopmail/domains/foxitsoftware.com/.qmail-$name $name example.com
chown vpopmail.vchkpw /home/vpopmail/domains/example.com/$name /home/vpopmail/domains/example.com/.qmail-$name* -R
done <list.txt

二.订阅:


1.发送空邮件加入,根据提示2次确认
maillist-sa-subscribe@example.com
或者
2.
创建用户
[root@mail example.com]# vpasswd demo6@example.com 123456
添加订阅者 demo6@example.com
[root@mail example.com]# ezmlm-sub /home/vpopmail/domains/example.com/maillist demo6@ example.com demo5@example.com 可以添加多个用户
 
 
 
或者:订阅邮件脚本
[root@mail ~]# cat addcmpc.sh
       while read name; do
       ezmlm-sub /home/vpopmail/domains/example.com/ maillist  $name@example.com
       done <cmpc.txt
 
 
 
三.退订:
  ezmlm-unsub /home/vpopmail/domains/example.com/maillist demo6@example.com   demo7@example.com ----------删除订阅者 可以删除多个
四.列出订阅者:
  ezmlm-list /home/vpopmail/domains/example.com/maillist
五.检查配置:
  ezmlm-check /home/vpopmail/domains/example.com/maillist   -------------这个非常有用,仔细看,就知道哪里配置的正确,或者错误
六.字符集:
  #vi charset
    :B
七.信件头添加和移除(headeradd/headerremove):
  信件头添加:
    Precedence: bulk
    X-No-Archive: yes
    Sender: < mailmaster@example.com>;
    Reply-To: < mailmaster@example.com>;
    list-help: < mailto:mailmaster@example.com>;
    list-unsubscribe: < mailto:unsubscribe@example.com>;
    list-post: < mailto:maillist@example.com>;
    To: < maillist@example.com>;
  信件头移除:
    return-path
    return-receipt-to
    content-length
    precedence
    x-confirm-reading-to
    x-pmrqc
    list-help
    list-unsubscribe
    list-post
    To
八.订阅审核和远程管理(remote admin):
  #touch remote
九.信件审核(message moderation):
  #touch modpost
  #touch moderator
  #ln -s /usr/home/vpopmail/domains/example.com/maillist/moderator /home/vpopmail/domains/example.com/.qmail-maillist-accept-default
  #ln -s /usr/home/vpopmail/domains/example.com/maillist/moderator /home/vpopmail/domains/example.com/.qmail-maillist-reject-default
  #vi moderator
    |/usr/local/qmail/bin/ezmlm/ezmlm-moderate '/home/vpopmail/domains/example.com/maillist'
    |/usr/local/qmail/bin/ezmlm/ezmlm-clean '/home/vpopmail/domains/example.com/maillist' || exit 0
  #vi editor
    |/usr/local/qmail/bin/ezmlm/ezmlm-reject '/home/vpopmail/domains/example.com/maillist'
    |/usr/local/qmail/bin/ezmlm/ezmlm-warn '/home/vpopmail/domains/example.com/maillist'
    |/usr/local/qmail/bin/ezmlm/ezmlm-store '/home/vpopmail/domains/example.com/maillist' || exit 0
    |/usr/local/qmail/bin/ezmlm/ezmlm-clean '/home/vpopmail/domains/example.com/maillist' || exit 0
  #/usr/local/qmail/bin/ezmlm/ezmlm-sub /home/vpopmail/domains/example.com/maillist/mod mailmaster@example.com      ----添加仲裁人,可以添加多个
十.owner文件:
mailmaster@example.com
|/usr/local/qmail/bin/ezmlm/ezmlm-warn '/home/vpopmail/domains/example.com/maillist' || exit 0
十一.config文件:
F:-aBCDEFGHIJKLMNOpQRSTUVWXYZ
D:/home/vpopmail/domains/example.com/maillist
T:/home/vpopmail/domains/example.com/.qmail-maillist
L:maillist
H:example.com
C:
0:
3:
4:
5:mailmaster@example.com
6:
7:
8:
9:
十二.使用邮件列表:
  使用任意账号给 maillist@example.com发信, mailmaster@bd.com会收到一封确认信
  如果允许这封信发送,直接回复,如果拒绝,点信件里的拒绝连接
  信件里有拒绝和允许的连接:
  允许发送: maillist-accept-1049189082.48169.acdilndmjdahikkfomhl@example.com
  拒绝发送: maillist-reject-1049189082.48169.acdilndmjdahikkfomhl@example.com
 
 
 
zmlm-sub /home/vpopmail/domains/example/web-list $name@example

[root@mail ~]# cat addlist.sh
while read name; do
ezmlm-make -dA /home/vpopmail/domains/example/$name /home/vpopmail/domains/example/.qmail-$name $name example
chown vpopmail.vchkpw /home/vpopmail/domains/example/$name /home/vpopmail/domains/example/.qmail-$name* -R
done <list.txt
[root@mail ~]# cat addnewuser.sh
while read name; do
echo " $name@example"
vadduser -q NOQUOTA -r -c $name $name@example
done <newusers.txt

[root@mail ~]# cat adduer.sh
while read name; do
vadduser -q NOQUOTA -r -c $name $name@example
done <users.txt

[root@mail ~]# cat  delalias.sh
valias -d akash@example
 
 
NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin root@localhost
        DocumentRoot /var/www/example_com/mail/htdocs
        ServerName mail.example
        ErrorLog /var/log/httpd/mail_example_com_error.log
        CustomLog /var/log/httpd/mail_example_com_access.log combined
        ServerSignature Off
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/foxitsoftware_com/mail/htdocs>
                Options FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        RewriteEngine On
        RewriteCond %{SERVER_NAME} !mail.example
        RewriteRule ^(.*)$ http://mail.example$1 [R,L]
</VirtualHost>
 
 
以下命令可以查看出用户密码
[root@mail foxitsoftware.com]# vuserinfo demo@foxitsoftware.com
name:   demo
passwd: $1$LMhTwlxF$4ukmosTCtR899UttZl4ag1
clear passwd: NCPNG1T9
comment/gecos: demo
uid:    0
gid:    0
flags:  0
gecos: demo
limits: No user limits set.
dir:       /home/vpopmail/domains/foxitsoftware.com/demo
quota:     NOQUOTA
usage:     NOQUOTA
last auth: Fri Feb  5 14:41:44 2010
last auth ip: imap
 


 

 

 
 
=========================================================
 ps aux
qmailctl queue
service qmail stop
pkill couriertls
pkill qmail-remote
pkill imapd
pkill qmail-popup
pkill qmail-php3d
pkill qmail-pop3d
service qmail start
qmailctl queue