來源:互聯網
上載者:User
關鍵字
發送
程式
網路版
郵件
基於
軟體
fp
hostrep
IMail
如果你無法在伺服器上安裝IMAIL,那隻能通過socket來發送郵件。但是如果你幸運的話,也可以用163/sina的
smtp服務。
常式如下(原程式由馬毅兄提供):
Mail Form anywhere
if($sendit)
{
$smtpserver="202.110.200.242" ; //將此處設為IMAIL的IP
echo "
" ;
$fp = fsockopen($smtpserver, 25, &$errno, &$errstr, 10) ; //串連smtp伺服器,連接埠25
if(!$fp) die("wrong open smtp SERVER") ;
$hostreplay=fgets($fp,128);
//if (!strstr($hostreplay,"220")) die(" can n't receive the 220 answer ") ;
$smailname=strstr(ltrim($hostreplay),"220 ") ;
$smailname=substr($smailname,0,strpos($smailname,".")) ;
//echo "\nsmailname:$smailname\n" ;
fputs($fp,"$smailname \n") ;
$hostreplay=fgets($fp,128);
//if (!strstr($hostreplay,"250")) die(" can n't receive the 250 answer ") ;
fputs($fp,"MAIL FROM: \n") ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"250")) {
fputs($fp,"MAIL FROM: root\n") ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"250")) {
fputs($fp,"MAIL FROM: root@263.net\n") ;
echo($hostreplay=fgets($fp,128)) ;
if (!strstr($hostreplay,"250")) {
fputs($fp,"MAIL FROM: $from_address\n") ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"250")) die(" can n't receive the 250 answer ") ;
};
};
};
fputs($fp,"RCPT TO: $to_address\n") ;
$hostreplay=fgets($fp,128);
if (!strstr($hostreplay,"250")) {
fputs($fp,"RCPT TO: $mailname\n") ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"250")) echo(" can n't receive the 354 answer") ;
};
fputs($fp,"DATA\n") ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"354")) die(" can n't receive the 250 answer ") ;
$tosend="From: $from_address\n";
$tosend.="To: $to_address\n";
$tosend.="Subject:".str_replace("\N"," ",$subject)."\n你好,這是yukuang發給您的一封測試信!!
\n.\n";
fputs($fp,$tosend) ;
$hostreplay=fgets($fp,128) ;
if (!strstr($hostreplay,"250")) die(" can n't receive the 250 answer ") ;
fputs($fp,"QUIT\n") ;
fclose($fp) ;
echo "發送成功";
exit();
//if($ck_name!='root') die("
bye bye ");
};
?>
該程式在區域網路內調試通過,我的IP是202.110.200.242,供大家測試