当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: http://www.chinaunix.net 作
 

 

 ·关于时序图问题的一次讨论    »显示摘要«
    摘要:2004-06-10 08:43:26 真没劲http://www.hanwen.net.cn/1.jpg,大家帮我看看这个顺序图,谢谢 2004-06-10 08:45:58 青润昨天我给你说过了三个问题,还有一些:4、事件流中断。5、方法调用递进关系不明确。 2004-06-10 08:46:20 青润初步看,大概就是这五个问题。更多的就要联系业务来检查了。 2004-06-1......
 ·asp中的函数说明    »显示摘要«
    摘要:array() function:返回一个数组 syntax:array(list) arguments:字符,数字均可 example:<%dim myarray()for i = 1 to 7 redim preserve myarray(i) myarray(i) = weekdayname(i)next%> result:建立了一个包含7个元素......


在rhas3.0上建立一个完整的邮件系统(内含四部分)修正版 V
http://www.chinaunix.net 作者:llzqq  发表于:2004-02-28 07:39:56

rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin 【程序编程相关:如何更新父窗体

【推荐阅读:取消网页的记忆功能

【扩展信息:Apache Module: Custo

一.安装说明. 

为了方便安装我在安装redhat3.0时选了apache.php.mysql,注意mysql-devel与mysql-server开发包一定要装上,其中mysql-server可以在网上找原码重编译生成也可以到我的ftp下载:ftp://download:123456@nero.3322.org/download/postfix/mysql-server-3.23.58-1.i386.rpm,另外大家在安装linux时一定要装上软件开发与内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于linux新手优为重要.

二.安装ucspi-tcp-0.88 

1.这是由于redhat3.0(包括redhat 9.0)的glibc的版本有问题,必须有下列软件及补丁才能编译

http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz  

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch 

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.errno.patch 

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch 

2.安装ucspi-tcp-0.88 

#tar zxvf ucspi-tcp-0.88.tar.gz 

#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.需要的软件及补丁 

http://cr.yp.to/software/qmail-1.03.tar.gz 

http://www.ckdhr.com/ckd/qmail-103.patch 

http://www.qmail.org/qmailqueue-patch 

http://www.shupp.org/patches/qmail-maildir++.patch 

http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.errno.patch 

http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.qmail_local.patch 

http://members.elysium.pl/brush/qmail-smtp-auth/dist/qmail-smtpd-auth-0.31.tar.gz 

2.建立目录

# mkdir /var/qmail  

# mkdir /var/qmail/alias  

3.建组及用户

# groupadd nofiles  

# groupadd qmail  

# useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent  

# useradd qmaild -g nofiles -d /var/qmail -s /nonexistent  

# useradd qmaill -g nofiles -d /var/qmail -s /nonexistent  

# useradd qmailp -g nofiles -d /var/qmail -s /nonexistent  

# useradd qmailq -g qmail -d /var/qmail -s /nonexistent  

# useradd qmailr -g qmail -d /var/qmail -s /nonexistent  

# useradd qmails -g qmail -d /var/qmail -s /nonexistent  

4.打补丁及编绎安装qmail 

#tar zxvf qmail-1.03.tar.gz 

#tar zxvf qmail-smtpd-auth-0.31.tar.gz 

#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-maildir++.patch 

#patch -p1 < ../qmail-1.03.errno.patch 

#patch -p1 < ../qmail-1.03.qmail_local.patch 

#vi qmail-smtpd.c      将函数straynewline中的451改为553 

#make setup check  

#./config-fast domain.com 

5.添加别名用户

# touch /var/qmail/alias/.qmail-root  

# touch /var/qmail/alias/.qmail-postmaster  

# touch /var/qmail/alias/.qmail-mailer-daemon  

6.如果存在postfix与sendmail,将它们停用.

#/etc/rc.d/init.d/sendmail stop 

#cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail 

#rm -f /etc/alternatives/mta 

#ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta

#rm -f /usr/lib/sendmail

#rm -f /usr/sbin/sendmail

#ln -s /var/qmail/bin/sendmail /usr/lib/sendmail 

#ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail 

#chmod 777 /usr/sbin/sendmail  

四.安装vpopmail 

1.下载vpopmail 

http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz 

2.建立目录

#mkdir /home/vpopmail 

#mkdir /home/vpopmail/etc 

3.添加用户与组

#groupadd vchkpw 

#useradd -g vchkpw vpopmail 

4.添加mysql的vpopmail用户,用于操作vpopmail数据库 

#mysqladmin -u root password ****        设置mysql的root密码.

#mysql -u root -p 

mysql>create database vpopmail; 

mysql>grant all on vpopmail.* to vpopmail@localhost identified by "密码"; 

5.编译安装vpopmail 

#tar zxvf vpopmail-5.2.1.tar.gz 

#cd vpopmail-5.2.1 

#vi vmysql.h  

=========================== vmysql.h ============================== 

#define mysql_update_server "localhost"  

#define mysql_update_user "vpopmail" 

#define mysql_update_passwd "****" (改成你设置的密码)  

#define mysql_read_server "localhost"  

#define mysql_read_user "vpopmail"  

#define mysql_read_passwd "****" (改成你设置的密码)  

==========================================================

6.创建tcp.smtp 

# vi /home/vpopmail/etc/tcp.smtp  

==================== tcp.smtp ============================

127.0.0.1:allow,relayclient=""  

:allow 

========================================================== 

#cd /home/vpopmail/etc 

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

7.进行编译:  

# ./configure  

--prefix=/home/vpopmail  

--enable-mysql=y 

--enable-incdir=/usr/include/mysql  

--enable-libdir=/usr/lib/mysql  

--enable-default-domain=domain.com  

--enable-passwd=n 

--enable-defaultquota=52428800s   (10485760:10mb,20971520:20mb,52428800s:50mb)  

--enable-tcprules-prog=/usr/local/bin/tcprules  

--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp 

--enable-vpopuser=vpopmail  

--enable-vpopgroup=vchkpw   

--enable-ip-alias-domains=n  

# make  

# make install-strip  

8.创建虚拟域  

# cd /home/vpopmail/bin  

# /home/vpopmail/bin/vadddomain   域名 密码 

# /home/vpopmail/bin/vadduser     用户名 密码 (用户名要带域名,如demo@demo.com)  

删除创建域的命令是:./vdeldomain  域名 

五.设置smtp-auth 

1.修改vchkpw的属性 

#chmod 4755 vchkpw 

#chown root.root vchkpw 

2.下载安装cmd5checkpw 

wget http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz 

#tar zxvf cmd5checkpw-0.22.tar.gz 

#cd cmd5checkpw-0.22 

#make 

#make install 

六.生成qmail的启动脚本 

#cp /var/qmail/boot/home /var/qmail/rc  

# vi /var/qmail/rc     //对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 ========================== 

#vi /var/qmail/smtp 

=================== smtp ========================

#!/bin/sh 

qmailduid=qmaild 

nofilesgid=nofiles 

/usr/local/bin/tcpserver -h -r -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $qmailduid -g $nofilesgid 0 smtp /var/qmail/bin/qmail-smtpd domain.com /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 & 

=================== smtp ============================ 

#vi /var/qmail/pop3       //编辑pop3服务的启动脚本 

====================== pop3 ========================= 

#!/bin/sh 

/usr/local/bin/tcpserver -h -r 0 pop3 /var/qmail/bin/qmail-popup domain.com /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

#ps aux | grep "qmail" 

查看pop3与smtp是否工作

# telnet 192.168.0.1 110

# telnet 192.168.0.1 25

注意在outlook中设置邮件帐号时,用户名后要加上域名,如llzqq@domain.com.如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld与maillog日志记录. 

八.安装并运行igenus 

1.下载最新的安装包:igenus_2_20030516_snap.tgz 

#tar zxvf igenus_2_20030516_snap.tgz -c /var/www/html 

2.建temp文件夹  

cd /var/www/html/igenus  

mkdir temp  

chmod -r 0755 temp  

chown -r vpopmail:vchkpw temp  

在httpd.conf中设置权限不允许访问temp目录. 

<directory "/var/www/html/webmail/temp"> 

deny from all 

</directory>

3.修改httpd.conf 

#vi /etc/httpd/conf/httpd.conf 

user apache

group apache 

修改为: 

user vpopmail

group vchkpw 

为了解决apache的默认语言问题添加这个:

adddefaultcharset gb2312

#/etc/rc.d/init.d/httpd restart

4.解决个别邮箱拒收邮件的问题(如新浪网)

修改邮件签名信息

#vi /var/www/html/igenus/config/config_inc.php

$cfg_basepath = "/var/www/html/igenus"; 

$cfg_mysql_host = ´localhost´; 

$cfg_mysql_user = ´vpopmail´; 

$cfg_mysql_pass = ´******´;    改成你的密码 

$cfg_mysql_db = ´vpopmail´; 

$cfg_temp = $cfg_basepath."/temp";

删除其中的

“igenus is a free webmail interface, no fee, free download”

修改其中的http://www.igenus.org为http://domain.com

#vi /var/qmail/control/helohost

=============== helohost ====================

domain.com

=============== helohost ====================

#chmod 755 /var/qmail/control/helohost 

如果你用的邮件服务器是postfix就这样处理

postconf -e "smtp_helo_name = 我的邮件服务器的域名(a记录)"  

如果你用的邮件服务器是sendmail就这样处理

vi /etc/sendmail.cf 

cw我的邮件服务器的域名(a记录)  

5.修正邮箱无退信问题

# rm -f /usr/sbin/sendmail    ##如果你已经卸载了sendmail可省略这步

# cd /usr/sbin

# ln -s /var/qmail/bin/sendmail

如果用qmailadmin管理邮箱则这样处理

进入qmailadmin -->主菜单“邮件账号”-->set no default catch all account 就ok了.这时网页上面的catchall应该显示为bounced.

6.修改config_inc.php文件  

# cd /var/www/html/igenus/config  

# vi config_inc.php  

=============== config_inc.php ==================== 

$cfg_basepath = "/var/www/html/igenus";  

$cfg_mysql_host = ´localhost´;  

$cfg_mysql_user = ´vpopmail´;  

$cfg_mysql_pass = ´****´;     这里改成你的密码  

$cfg_mysql_db = ´vpopmail´;  

$cfg_temp = $cfg_basepath."/temp";  

============================================== 

7.重新编制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;

8.如果需要,用vadddomain与vadduser添加新域名与新用户

9.qmail限制附件的大小

在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建. 

smtp方式是以qmail的databytes作限制的 

创建databytes并设置邮件最大为4m

# echo 4000000 >/var/qmail/control/databyte 

10.限制单域的邮箱数量

vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

===============.qmailadmin-limits ====================

maxpopaccounts 200 

default_quota 52428800s

===============.qmailadmin-limits ====================

chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits

chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits

这样就把邮箱总数限制在200个,每个邮箱为50m了

11.用qmail封mailfrom

vi/var/qmail/control/badmailfrom 

这个控制文件实现拒收邮件功能的,每一个地址要单独一行.而且,不用重起qmail就能生效.例如: 

peng@96633.net -----限制一个特定的用户

@sina.com -----限制整个域中的邮件

12.设置igenus 定义允许上传下载的邮件的大小

# vi /etc/php.ini 

max_execution_time = 60 

memory_limit = 16m  

post_max_size = 4m 

upload_max_filesize = 4m 

file_uploads = on

session.auto_start = 1

register_globals = on

session.bug_compat_42 = 1

session.bug_compat_warn = 0

# vi /etc/httpd/conf.d/php.conf 

<files *.php> 

    setoutputfilter php 

    setinputfilter php 

    limitrequestbody 4242880

</files> 

九.编辑qmail自启动脚本 

#vi /etc/rc.d/init.d/qmail  

===================== qmail ======================  

#! /bin/sh  

# chkconfig: 2545 90 90  

# description: qmail (include smtp and pop3) auto start/stop scripts.  

. /etc/rc.d/init.d/functions  

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:"  


...   下一页
    摘要:当我们在写程序的时候,字符串的处理频率是相当高的。比如像数字转换为字符,或者字符转换为整型、双精度型等,如果能够妙用字符串的功能,将会起到事半功倍的效果,这又何乐而不为呢。根据msdn的解释:支持两种转换格式,如下所示void format( lpctstr lpszformat, ... );其中参数lpszformat 是格式控制字符串,void format( uint nformatid,......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE