用PHP編制郵件轉發通用程序

發表于:2007-09-07來源:作者:點擊數: 標簽:
在網站建設過程當中經常需要提供一些表格,根據用戶的選擇將用戶信息轉發至不同的e-mail中。 單獨轉發一個e-mail比較簡單,在網上也有許多用PERL語言編制的程序,但一次根據情況轉發至不同的e-mail則相對較難,我這段時間剛好需要,所以用PHP編寫了這個程序,
在網站建設過程當中經常需要提供一些表格,根據用戶的選擇將用戶信息轉發至不同的e-mail中。 單獨轉發一個e-mail比較簡單,在網上也有許多用PERL語言編制的程序,但一次根據情況轉發至不同的e-mail則相對較難,我這段時間剛好需要,所以用PHP編寫了這個程序,使用情況良好,所以提供給大家共享。



PHP處理程序如下:




// purpose: transformming email

// author: pengwu wang

// date: Oct. 21,2003



/*用send-form.php要求的字段的說明:

form中method 用 post

namex, 用戶名

title, 顯示的標題

from, 從那兒送過來,缺省test@test.com

urlto, 是完成以后顯示的頁面, 缺省取為空,即在原網頁不動,有一個提示框顯示,否則轉至要求的網頁

cc, 密送的郵箱地址,缺省取test@test.com

sendto_name, 要替換sendto或sendto[]的名稱, sendto缺省用'sendto',sendto[]缺省用'發送至'

namex_name, 要替換namex的名稱, 缺省用namex

sendto, 要發送至單獨一個email的項



sendto[], 要發送至多個email的項, 對每一個checkbox,radio按鈕,其name寫sendto[]=......

email_1,

email_2,

email_3,

email_4,

......, 根據sendto[]值發向不同地的email地址值. 此處的1,2,3,4等要換成與sendto[]所選值完全相等

如:email_測試1=test1@test.com, email_測試2=test2@test.com

則sendto[]項最后可取的值應為: 測試1,測試2

對于表單中不需要的字段應以hidden方式發送;

namex,title,sendto,或sendto[]是必須填寫的. 當為sendto[]時email_*值必須寫. 其它的可以不寫

除sendto[]外,其它的name不能重復,因為不好判斷其組別關系.

*/



//此6個變量先取出來是為了方便

$from=$_POST[from];

$cc=$_POST[cc];

$urlto=$_POST[urlto];

$sendto=$_POST[sendto];

$sendto_name=$_POST[sendto_name];

$namex_name=$_POST[namex_name];



$ret=false;

if(!is_array($sendto) amp;amp; !empty($sendto)) $ret=true;

if(is_array($sendto)) { //多郵件發送

reset($sendto);

while(list($k,$v)=each($sendto)) {

if(isset($k) amp;amp; isset($v)) {

$ret=true;

break;

}

}

}

if(!$ret) {

echo("



");

exit; //所給的郵件地址都為空

}



$subject .= $_POST[title]." - ".$_POST[namex];

$body = "";

$body .= $subject."
";

$body .= "填表日期 : ".date("Y年m月d日",time())."
";

$body .= "----------------------------------------
";

$body .= "";



reset ($_POST);

while (list ($key, $val) = each ($_POST)) {

if(ereg("^email_.*",$key)) continue;

else if(strcmp($key,"title")==0) continue;

else if(strcmp($key,"cc")==0) continue;

else if(strcmp($key,"from")==0) continue;

else if(strcmp($key,"urlto")==0) continue;

else if(strcmp($key,"sendto_name")==0) continue;

else if(strcmp($key,"namex_name")==0) continue;

else if(strcmp($key,"sendto")==0 amp;amp; !is_array($key) amp; empty($val)) continue;



$body .= "";

if(strcmp($key,"sendto")==0 amp;amp; is_array($sendto)) {

reset($sendto);

while(list($k,$v)=each($sendto)) {

if(isset($sendto_name) amp;amp; !empty($sendto_name))

$body .= "";

else

$body .= "";

$body .= "";

}

} else {

if(strcmp($key,"sendto")==0)

$body .= "";

else if(strcmp($key,"namex")==0)

$body .= "";

else

$body .= "";

$body .= "
$sendto_name$v 發送至$v
$sendto_name$val $namex_name$val $key$val
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97

原文轉自:http://www.anti-gravitydesign.com