web界面添加email的Perl程序不完整版

############################

#說明:web界面添加email的Perl程序不完整版

#名稱:webadmin.cgi

#系統環境:Freebsd、Mod_Perl、MySQL、Apache、Apache::DBI、PostFix 2.x、igenus for postfix 1.0

#作者:邱雄盛

#QQ:2263537

#MSN:sunboydavid#hotmail.com

#SkyPe:haoqiu

#時間:2005年5月26日

############################

#!/usr/bin/perl

use lib 'libs/';

use strict;

use CGI::Carp qw(fatalsToBrowser);

use CGI;

use Apache::DBI;

use IMail;

# Get CGI parameters

my $cgi = new CGI;

my $mail = $cgi-param('mail');

my $password = $cgi-param('password');

my $realname = $cgi-param('realname');

my ($username,$domain)=split(/\@/,$mail);

unless($domain){

print "Content-Type: text/html\n\n";

print qq~

郵件系統管理

添加郵件用戶

Email地址:

密碼:

真實姓名:

~;

exit;

}

# 數據分析

$mail or die "郵箱沒填哦.\n\n";

$password or die "密碼沒填哦.\n\n";

$realname or die "真實姓名沒填哦.\n\n";

# 連接數據庫

my $dbh = connectDb();

# 添加用戶

my $uid=125;

my $gid=125;

my $home="/var/mail";

my $size=10240000;

# 查詢已有域

my $query = "SELECT COUNT(*) FROM transport WHERE domain = ?";

my $sth = $dbh-prepare_cached($query);

$sth-execute($domain) or dbError();

my $count=$sth-fetchrow_arrayref-[0];

$sth-finish;

unless ($count){

# 添加域

my $query = "INSERT INTO transport SET domain=?,transport=?";

my $sth = $dbh-prepare_cached($query);

$sth-execute($domain,'virtual:') or die"'數據庫操作錯誤,域未添加成功.\n\n";

$sth-finish;

}

my $query = "INSERT INTO virtual_users SET email=?,password=?,uid=?,gid=?,home=?,maildir=?,regtime=NOW(),domain=?,username=?,quota=?";

my $sth = $dbh-prepare_cached($query);

$sth-execute($mail,$password,$uid,$gid,"$home/","$domain/$username/Maildir/",$domain,$realname,$size) or die"'數據庫操作錯誤,用戶未添加成功.\n\n";

$sth-finish;

# 域

if (! -e "$home/$domain") {

mkdir("$home/$domain", "0700");

`chmod 700 $home/$domain`;

}

# 用戶

if (! -e "$home/$domain/$username") {

mkdir("$home/$domain/$username", "0700");

`chmod 700 $home/$domain/$username`;

}

# Maildir

if (! -e "$home/$domain/$username/Maildir") {

mkdir("$home/$domain/$username/Maildir", "0700");

`chmod 700 $home/$domain/$username/Maildir`;

}

# cur

if (! -e "$home/$domain/$username/Maildir/cur") {

mkdir("$home/$domain/$username/Maildir/cur", "0700");

`chmod 700 $home/$domain/$username/Maildir/cur`;

}

# tmp

if (! -e "$home/$domain/$username/Maildir/tmp") {

mkdir("$home/$domain/$username/Maildir/tmp", "0700");

`chmod 700 $home/$domain/$username/Maildir/tmp`;

}

# new

if (! -e "$home/$domain/$username/Maildir/new") {

mkdir("$home/$domain/$username/Maildir/new", "0700");

`chmod 700 $home/$domain/$username/Maildir/new`;

}

chown ($uid, $gid, "$home/$domain") or warn "couldn't chown $home/$domain";

# 頁面跳轉

print $cgi-header(-location="mail_admin.cgi");

#End

吸引Web程序員的Perl的模板系統Mason
  Perl中的模板系統很多,而且在perl中設計簡單的Template也不是什麽難事,我 bloves 等等都設計國自己的template。  不過話說回來了,不論是Perl的Template技術還是常用的這些P結尾的技術,還都無法于Mason相提...查看完整版>>吸引Web程序員的Perl的模板系統Mason
 
建立大容量Web界面的Email系統
  最近幾年來,基于Web的免費Email系統非常流行,當前,幾個著名的免費Email網站基本上已經成爲大多數人的選擇,建立單純提供免費Email服務的站點不再像以前那樣受到熱烈歡迎,但是提供Web界面的Email服務已經成爲...查看完整版>>建立大容量Web界面的Email系統
 
建立大容量Web界面的Email系統
  最近幾年來,基于Web的免費Email系統非常流行,當前,幾個著名的免費Email網站基本上已經成爲大多數人的選擇,建立單純提供免費Email服務的站點不再像以前那樣受到熱烈歡迎,但是提供Web界面的Email服務已經成爲...查看完整版>>建立大容量Web界面的Email系統
 
建立大容量Web界面的Email系統
最近幾年來,基于Web的免費Email系統非常流行,當前,幾個著名的免費Email網站基本上已經成爲大多數人的選擇,建立單純提供免費Email服務的站點不再像以前那樣受到熱烈歡迎,但是提供Web界面的Email服務已經成爲了一...查看完整版>>建立大容量Web界面的Email系統
 
建立大容量Web界面的Email系統
最近幾年來,基于Web的免費Email系統非常流行,當前,幾個著名的免費Email網站基本上已經成爲大多數人的選擇,建立單純提供免費Email服務的站點不再像以前那樣受到熱烈歡迎,但是提供Web界面的Email服務已經成爲了一...查看完整版>>建立大容量Web界面的Email系統
 
Perl Web 服務器初級編程
Perl Web 服務器初級編程 Perl Web 服務器初級編程 如果你對WEB服務器編程和LINUX環境下PERL CGI編程感興趣,建議你閱讀下面內容,即使沒有CGI開發經驗,只要了解perl語言,就不會感覺困難。由...查看完整版>>Perl Web 服務器初級編程
 
Perl Web 服務器初級編程
如果你對WEB服務器編程和LINUX環境下PERL CGI編程感興趣,建議你閱讀下面內容,即使沒有CGI開發經驗,只要了解perl語言,就不會感覺困難。由于我第1次寫作Blog文章,如有錯誤請指出,謝謝。 HTTP消息...查看完整版>>Perl Web 服務器初級編程
 
如何保證web app中的Send Email線程穩定性
在asp.net forums2 或者 cs 系統中, 每過幾分種會發送一次email, 但是如果在執行時,數據庫服務器重啓。會導致Send Email 線程死掉。參考代碼:private void ScheduledWorkCallbackEmailInterval (object sender) ...查看完整版>>如何保證web app中的Send Email線程穩定性
 
如何保證web app中的Send Email線程穩定性
在asp.net forums2 或者 cs 系統中, 每過幾分種會發送一次email, 但是如果在執行時,數據庫服務器重啓。會導致Send Email 線程死掉。參考代碼:private void ScheduledWorkCallbackEmailInterval (object sender) ...查看完整版>>如何保證web app中的Send Email線程穩定性
 
 
回到王朝網路首頁