SOLARIS+QMAIL+VPOPMAIL+IGENUS+QMAILAMDIN

发表于:2007-07-04来源:作者:点击数: 标签:
一、准备工作: 安装gcc、make、autoconf、automake等编译工具,建立 网络 连接,配置域名。 二、安装patch工具: # gzip –d patch-2.5.4-sol8-intel-local.gz # pkgadd –d patch-2.5.4-sol8-intel-local # mv /usr/bin/patch /usr/bin/patch.bak # cp /us

  一、准备工作:
  安装gclearcase/" target="_blank" >cc、make、autoconf、automake等编译工具,建立网络连接,配置域名。
  
  二、安装patch工具:
  # gzip –d patch-2.5.4-sol8-intel-local.gz
  # pkgadd –d patch-2.5.4-sol8-intel-local
  # mv /usr/bin/patch /usr/bin/patch.bak
  # cp /usr/local/bin/patch /usr/bin/patch
  
  三、安装ucspi-tcp-0.88
  # gzip -d ucspi-tcp-0.88.tar.gz
  # tar xvf ucspi-tcp-0.88.tar
  # cd ucspi-tcp-0.88
  # patch -p1 < ../ucspi-tcp-0.88.a_record.patch
  # patch -p1 < ../ucspi-tcp-0.88.errno.patch
  # patch -p1 < ../ucspi-tcp-0.88.nobase.patch
  # make
  # make setup check
  
  四、安装qmail
  1.建目录:
  # mkdir /var/qmail
  # mkdir /var/qmail/alias
  2.建组及用户:
  # groupadd nofiles
  # groupadd qmail
  # useradd -g nofiles -m -d /var/qmail/alias -s /bin/false alias
  # useradd -g nofiles -m -d /var/qmail -s /bin/false qmaild
  # useradd -g nofiles -m -d /var/qmail -s /bin/false qmaill
  # useradd -g nofiles -m -d /var/qmail -s /bin/false qmailp
  # useradd -g qmail -m -d /var/qmail -s /bin/false qmailq
  # useradd -g qmail -m -d /var/qmail -s /bin/false qmailr
  # useradd -g qmail -m -d /var/qmail -s /bin/false qmails
  
  3.打补丁及编绎安装qmail
  
  # gzip -d qmail-1.03.tar.gz
  # tar xvf qmail-1.03.tar
  # gzip -d qmail-smtpd-auth-0.31.tar.gz
  # tar xvf qmail-smtpd-auth-0.31.tar
  # cp qmail-smtpd-auth-0.31/base64.* qmail-1.03
  # patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch
  # cd qmail-1.03
  # patch -p1 < ../qmail-103.patch
  # patch -p1 < ../qmailqueue-patch
  # patch -p1 < ../qmail-1.03.qmail_local.patch
  # patch -p1 < ../qmail-maildir++.patch
  # patch -p1 < ../qmail-1.03.errno.patch
  
  修改qmail-smtpd.c将函数straynewline中的451改为553.(在53行)
  查找“http://”两次,改其中的url如下(这样可以使QMAIL更安全些):
  
  void straynewline() { out("451 See http://nero.3322.org.\r\n");
  out("214 llzqq home page: http://nero.3322.org\r\n");
  
  # make setup check
  出现错误后,修改auto-ccld.sh文件中CC,LD成你所用的环境就可以了。
  # ./config-fast nero.3322.org
  
  4.添加别名用户:
  # touch /var/qmail/alias/.qmail-root
  # touch /var/qmail/alias/.qmail-postmaster
  # touch /var/qmail/alias/.qmail-mailer-daemon
  
  5.如果存在postfix和sendmail,停用现在的mail服务
  # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
  # chmod 777 /usr/sbin/sendmail
  
  五、安装vpopmail
  1.建立目录:
  # mkdir /export/home/vpopmail
  # mkdir /export/home/vpopmail/etc
  
  2.添加用户和组:
  # groupadd vchkpw
  # useradd -g vchkpw -s /bin/false -m -d /export/home/vpopmail vpopmail
  
  3.添加mysql的vpopmail用户,用于操作vpopmail数据库
  
  # mysql -u root –p******
  mysql>create database vpopmail;
  mysql>grant all on vpopmail.* to vpopmail@localhost identified by "password";
  
  4.编译安装vpopmail
  
  # gzip -d vpopmail-5.2.1.tar.gz
  # tar xvf vpopmail-5.2.1.tar
  # cd vpopmail-5.2.1
  # vi vmysql.h
  ========================= vmysql.h========================
  #define MYSQL_UPDATE_SERVER "localhost" (mysql服务器名)
  #define MYSQL_UPDATE_USER "vpopmail" (用户名)
  #define MYSQL_UPDATE_PASSWD "*****" (改成你设置的密码)
  
  #define MYSQL_READ_SERVER "localhost" (mysql服务器名)
  #define MYSQL_READ_USER "vpopmail" (用户名)
  #define MYSQL_READ_PASSWD "*****" (改成你设置的密码)
  
  在54行和58行后加 \
  #define TABLE_LAYOUT "pw_name char(32) not null, \
  pw_domain char(64) not null, <===== 54
  pw_passwd char(40), \
  pw_uid int, pw_gid int, \
  pw_gecos char(4, \
  pw_dir char(160), <===== 58
  pw_shell char(20), \
  primary key (pw_name, pw_domain ) "
  ========================= vmysql.h========================
  
  5.创建tcp.smtp文件(或者使用/etc/tcp.smtp)
  
  # vi /export/home/vpopmail/etc/tcp.smtp
  
  127.0.0.1:allow,RELAYCLIENT=""
  :allow
  
  # cd /export/home/vpopmail/etc
  # tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
  
  6.进行编译:
  ./configure
  --prefix=/export/home/vpopmail
  --enable-mysql=y
  --enable-incdir=/opt/sfw/mysql/include/mysql --enable-libdir=/opt/sfw/mysql/lib/mysql --enable-default-domain=nero.3322.org
  --enable-passwd=n
  --enable-defaultquota=52428800s --enable-tcprules-prog=/usr/local/bin/tcprules --enable-tcpserver-file=/export/home/vpopmail/etc/tcp.smtp --enable-vpopuser=vpopmail
  --enable-vpopgroup=vchkpw
  --enable-ip-alias-domains=n
  
  需要改下面两个文件中的“cc -s”为“gcc -s”
  ./cdb/conf-cc
  ./cdb/conf-ld
  
  # make
  # make install-strip
  
  7.创建虚拟域
  
  # cd /export/home/vpopmail/bin
  # ./vadddomain nero.3322.org
  
  如果不成功的话,则必须先删除创建的域(vdeldomain 域名),
  # ./vadduser llzqq@nero.3322.org
  # ./vadduser test@nero.3322.org
  如果添加domain时,提示Domain already exists,但却删除domain又提示Domain does not exist.则采用下面的处理方法.
  删除/var/qmail/control目录下rcpthosts,virtualdomains文件中有关domain的信息;同时删除/var/qmail/user目录下assign文件中有关domain的信息;然后运行/var/qmail/bin/qmail-newu.这时候就可以正常添加domain了.
  
  六、smtp-auth的设置
  1.修改vchkpw的属性
  # cd /export/home/vpopmail/bin
  # chmod 4755 vchkpw
  # chown root:sys vchkpw
  
  如果使用带验证的smtp,smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid。提高vchkpw的权限,才能完成setgid操作。
  
  2.安装cmd5checkpw
  # gzip -d cmd5checkpw-0.22.tar.gz
  # tar xvf cmd5checkpw-0.22.tar
  # cd cmd5checkpw-0.22
  # make
  # mkdir /usr/man/man8
  # make install
  
  七、生成qmail的启动脚本
  # cp /var/qmail/boot/home /var/qmail/rc
  对rc文件进行修改,以决定投送方式:
  # vi /var/qmail/rc
  这里要注意,这三个文件中的命令最好写在一行.
  =====================================rc=====================================
  #!/bin/sh
  # Using splogger to send the log through syslog.
  # Using dot-forward to support sendmail-style ~/.forward files.
  # Using qmail-local to deliver messages to ~/Mailbox by default.
  
  exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &
  =====================================rc=====================================
  编辑smtp服务的启动脚本
  # vi /var/qmail/smtp
  ====================================smtp====================================
  #!/bin/sh
  QMAILDUID=qmaild
  NOFILESGID=nofiles
  /usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /export/home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd nero.3322.org /export/home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &
  ====================================smtp====================================
  编辑pop3服务的启动脚本
  # vi /var/qmail/pop3
  ====================================pop3====================================
  #!/bin/sh
  /usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup nero.3322.org
  /export/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
  ====================================pop3====================================
  
  # chmod 755 /var/qmail/rc
  # chmod 755 /var/qmail/smtp
  # chmod 755 /var/qmail/pop3
  
  八、运行qmail并测试
  # /var/qmail/rc
  # /var/qmail/smtp
  # /var/qmail/pop3
  
  查看qmail的服务进程是否已完全正常启动
  # ps -ef | grep qmail
  
  九、建立开机启动脚本:
  # vi /etc/init.d/qmail
  ==================================qmail==============================
  #! /bin/sh
  # chkconfig: 2545 90 90
  # description: qmail (include smtp and pop3) auto start/stop scripts.
  
  case "$1" in
  start)
  echo -n "start qmail:"
  /var/qmail/rc &
  echo "."
  echo -n "start smtp service:"
  /var/qmail/smtp
  echo "."
  echo -n "start pop3 service:"
  /var/qmail/pop3
  echo "."
  ;;
  stop)
  echo "stop qmail:"
  pkill qmail-send
  pkill qmail-clean
  pkill qmail-rspawn
  pkill qmail-lspawn
  pkill splogger
  pkill tcpserver
  ;;
  *)
  
  exit 1
  ;;
  esac
  exit 0
  ==================================qmail==============================
  
  # chmod 744 /etc/init.d/qmail
  # chown root:sys /etc/init.d/qmail
  # ln -s /etc/init.d/qmail /etc/rc3.d/S82qmail
  # ln -s /etc/init.d/qmail /etc/rc2.d/K82qmail
  
  十、安装IGENUS
  # gzip -d igenus_2_20030516_snap.tgz
  # tar vxf igenus_2_20030516_snap.tar
  # mv igenus /var/www/html/
  # cd /var/www/html/igenus
  # mkdir temp
  # chmod -R 0755 temp
  # chown -R vpopmail:vchkpw temp
  
  其他关于IGENUS的详细设置略。
  
  十一、建立MySQL数据表:
  # mysql -u root -p******
  
  mysql>use vpopmail;
  mysql>alter table vpopmail drop primary key;
  mysql>alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
  mysql>create table address (
  id int(11) unsigned NOT NULL auto_increment,
  pw_id int(5) unsigned NOT NULL default '0',
  name varchar(64) NOT NULL default ',
  email varchar(128) NOT NULL default ',
  UNIQUE KEY id (id),
  KEY pw_id (pw_id)
  ) TYPE=MyISAM;
  
  十二、安装autorespond
  # gzip –d autorespond-2.0.2.tar.gz
  # tar xvf autorespond-2.0.2.tar
  # cd autorespond-2.0.2
  # vi Makefile
  将其中的INSTALL_DIR =修改为 /var/qmail/bin
  # make
  # make install
  # cp autorespond /usr/local/bin
  
  十三、安装QMAILADMIN
  # gzip –d qmailadmin-1.0.6.tar.gz
  # tar xvf qmailadmin-1.0.6.tar
  # cd qmailadmin-1.0.6
  # ./configure
  --enable-cgibindir=/var/www/cgi-bin
  --enable-htmldir=/var/www/html
  --disable-ezmlmdir
  
  # make
  # make install-strip
  
  再一次执行
  # chown -R vpopmail:vchkpw /var/www/html/igenus/temp
  
  汉化qmailadmin首先删除qmailadmin安装的菜单文件
  
  # rm -f /usr/local/share/qmailadmin/html/en
  # rm -f /usr/local/share/qmailadmin/html/en-us
  
  生成自己的简体中文菜单文件/usr/local/share/qmailadmin/html/en
  
  # vi /usr/local/share/qmailadmin/html/en
  
  =================================== en ===================================
  000 gb2312
  001 主菜单
  002 邮件帐号
  003 添加邮件机器人:
  004 邮件机器人的名字:
  005 发送拷贝到邮件地址:
  006 标题:
  007 添加转发帐号:
  008 转发到邮件地址:
  009 本地邮件用户名:
  010 要转发的邮件地址的格式是:user@domain.com.
  本地邮件用户的格式是: popaccount
  例如,
  如果转发 本地用户: sales到邮件地址: joe@domain.com
  那么所有发到sales用户的邮件都将转发到 joe@domain.com这个邮件地址中
  011 Add List Moderator
  012 Add Moderator to mailing list
  013 邮件地址:
  014 添加新的用户到邮件类别
  015 创建新的邮件列表
  016 邮件列表的名字
  017 邮件列表所有者的邮件地址:
  018 Archived
  019 Not archived
  020 Block archive. Only moderators are allowed to access the archive.
  021 Archive access is open to anyone or subscribers only, depending on the Guard setting.
  022 No digest. Do not set up the digest list.
  023 Prefix. Set up the list so that the outgoing subject will be prefixed with the list name.
  024 No prefix.
  025 Guard archive. Archive access requests from unrecognised SENDERs will be rejected.
  026 Do not guard archive. Archive access request from any SENDERs will be serviced.
  027 Subscriptions do not require confirmation.
  028 Subscription requires confirmation by reply to a message sent to the subscription address.
  029 Indexed for WWW archive access.
  030 The list is created without WWW archive index
  031 Unsubscribe does not require confirmation.
  032 Unsubscribe requires confirmation by a reply to a message sent to the subscription address.
  033 List subscribers. Remote administrators can request a subscriber list, and search the subscriber log.
  034 The subscriber list cannot be obtained.
  035 Message moderation.
  036 Message posting is not moderated.
  037 Posts from addresses other than moderators are rejected. This is applicable to message moderated lists only.
  038 Others not rejected. For moderated lists, all posts are forwarded to the moderators. The switch has effects only on message moderated lists.
  039 Respond to adminstrative requests and allow archive retrieval.
  040 Allow only digest creation, remote adminstration, and archive retrieval by remote administrators, (if the list is configured with this options).
  041 Allow remote administrators to edit files in text directory
  042 Text file editing is not allowed
  043 ReQuest address is serviced
  044 Do not process messages sent to the request address
  045 Enables remote administration
  046 No remote administration.
  047 Subscription moderation.
  048 Subscriptions are not moderated.
  049 Trailer
  050 No trailer
  051 User posts only
  052 Do not restrict posts based on SENDER address
  053 允许数据库支持
  054 主机名
  055 端口
  056 用户名
  057 密码
  058 数据库
  059 表
  060 添加
  061 邮件帐号
  062 CatchAll:
  063 说明
  064 修改
  用户
  065 删除
  帐号
  066 CatchAll
  帐号
  067 创建新的邮件帐号
  068 帐号别名
  069 别名
  070 邮件帐号
  071 修改
  072 删除
  073 创建新的别名
  074 Forward Accounts
  075 转发
  076 创建新的转发
  077 邮件机器人
  078 邮件机器人
  079 新的邮件机器人
  080 邮件列表
  081 列表
  082 打开.qmail-default时出错
  083 添加
  订阅人
  084 删除
  订阅人
  085 列出
  订阅人
  086 添加
  Moderator
  087 删除
  Moderator
  088 列出
  Moderators
  089 新的邮件列表
  090 创建邮件帐号
  091 密码 (again):
  092 真实姓名
  093 列表名
  094 提交用户
  095 提交新用户到下列邮件列表
  096 删除别名
  097 确认删除
  098 删除邮件机器人
  099 数据库设置
  100 删除转发
  101 删除邮件列表
  102 删除用户
  103 转发邮件
  104 是的, 将它转发到:
  105 修改邮件机器人
  106 名字
  107 说明
  108 创建新的邮件地址
  109 修改用户
  110 新的密码
  111 修改用户
  112 管理员帐号
  113 域名
  114 登录
  115 Redirects for user
  116 Current redirects
  117 Add/Replace redirect email
  118 Delete rediect
  119 添加成功
  120 无法添加
  121 别名
  122 转发
  123 Show redirect
  124 快捷链接
  125 创建新的邮件帐号
  126 创建新的别名
  127 创建新的转发
  128 创建新的邮件机器人
  129 创建新的邮件列表
  130 CatchAll: Bounced
  131 没有用户可供浏览,请返回到上一页
  132 默认
  133 索引:
  134 Set no default catch all account
  135 上一页
  136 刷新
  137 下一页
  138 Type in password
  139 邮件用户的密码更改成功。
  140 密码修改失败。
  141 用删除成功。
  142 没有认证
  143 目录权限错误
  144 文件权限错误
  145 无效用户内部错误
  146 Cannot Do redirect
  147 Redirect Now
  148 无效邮件地址
  149 Cannot Delete Last Entry
  150 文件错误
  151 Line Deleted Succesfully
  152 转发添加成功
  153 用户名不存在
  154 别名添加成功
  155 Invalid Action
  156 达到最大的别名数目限制
  157 达到最大的转发数目限制
  158 达到最大邮件机器人数目限制
  159 Invalid DotQmail Type: adddotqmail()
  160 别名无效
  161 Did not add alias. POP Account must be an existing POP Account.
  162 邮件用户名无效
  163 本地用户名无效
  164 Invalid Alias Type : adddotqmailnow()
  165 添加邮件用户的别名失败
  166 添加邮件用户的别名成功
  167 删除用户的别名/转发出错。
  168 添加用户的别名/转发成功。
  169 Error deleting redirect/forward for POP Account
  170 Redirect/forward for POP Account deleted successfully
  171 Error: could not change to directory
  172 Only one person can log in as system postmaster at one time. Someone else has logged in. Please only have one login at a time.
  173 登录过期,请重新登录
  174 无效的邮件机器人名
  175 用户名已存在
  176 Please fill in Mail Robot name
  177 Invalid Owner Email Address
  178 请输入标题
  179 Please type in something to send
  180 邮件机器人添加成功
  181 无法删除邮件机器人
  182 邮件机器人删除成功
  183 邮件机器人修改成功
  184 达到最大的邮件列表数
  185 无法删除邮件列表数
  186 邮件列表删除成功
  187 邮件列表添加成功
  188 无效的邮件列表名
  189 邮件列表中邮件地址一览
  190 End of list
  191 邮件列表中moderator用户的邮件地址一览
  192 返回主菜单
  193 添加到主菜单
  194 Email address added as a moderator to mailing list
  195 从邮件列表中删除订阅人
  196 从邮件列表中删除moderator
  197 removed as a moderator for mailing list
  198 登录无效
  199 达到最大的邮件用户数目
  200 密码不匹配,请重新输入
  201 内存耗尽
  202 Where the parameters are:
  203 从邮件列表中移除
  204 Go user
  205 禁止 转发/假期(Vacation)
  206 Set remote catch all account
  207 Set Remote CatchAll
  208 Remote CatchAll Address:
  209 允许转发
  210 允许保存拷贝和转发
  211 转发邮件到:
  212 允许假期(Vacaction)
  213 Vacation 标题:
  214 Vacation 信息:
  215 必须提供转发地址
  216 必须提供标题
  217 刷新主菜单
  218 退出
  219 Moderators列表
  220 Moderator
  地址
  221 订阅人列表
  222 提交
  地址
  223 用户不存在
  224 (点击修改)
  225 修改邮件列表
  226 邮件列表修改成功
  227 诊断
  228 总数:
  229 不限制
  230 订阅人总数:
  231 没有列表可供显示
  232 没有别名和转发可供显示
  233 没有邮件机器人可供显示
  =================================== en ===================================
  
  # cd /usr/local/share/qmailadmin/html
  # cp en en-us
  
  生成admin表
  
  # mysql -u root –p******
  mysql>use vpopmail;
  mysql>CREATE TABLE `admin` (
  `id` tinyint(3) unsigned NOT NULL auto_increment,
  `domain` varchar(128) NOT NULL default ',
  `quota` smallint(5) unsigned NOT NULL default '0',
  `total` smallint(5) unsigned NOT NULL default '0',
  `createtime` timestamp(14) NOT NULL,
  `login` char(1) NOT NULL default ',
  `cur_total` smallint(5) NOT NULL default '0',
  `cur_quota` smallint(5) NOT NULL default '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `domain` (`domain`)
  ) TYPE=MyISAM PACK_KEYS=1 AUTO_INCREMENT=1 ;
  
  访问QMAILADMIN页面:
  
  http://nero.3322.org/cgi-bin/qmailadmin

原文转自:http://www.ltesting.net