username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* ¹¦ÄÜ£º·¢ËÍÓʼþ
* $to Ä¿±êÓÊÏä
* $from À´Ô´ÓÊÏä
* $subject Óʼþ±êÌâ
* $message ÓʼþÄÚÈÝ
*/
function send ( $to, $from, $subject, $message ) {
//Á¬½Ó·þÎñÆ÷
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "Áª½Ó·þÎñÆ÷ʧ°Ü".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "´íÎóÐÅÏ¢:".$lastmessage.__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//Éí·ÝÑéÖ¤
if ($this->check=="1") {
//ÑéÖ¤¿ªÊ¼
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
//Óû§ÐÕÃû
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
//Óû§ÃÜÂë
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: ". $this->s_from . "\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: $to" . "\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "´íÎóÐÅÏ¢$lastmessage".__LINE__;
//´¦ÀíSubjectÍ·
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;
//´¦ÀíFromÍ·
$head="From: $from\r\n";
$message = $head.$message;
//´¦ÀíToÍ·
$head="To: $to\r\n";
$message = $head.$message;
//¼ÓÉϽáÊø´®
$message .= "\r\n.\r\n";
//·¢ËÍÐÅÏ¢
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*·¢ËÍʾÀý
$sm = new smail( "Óû§Ãû@163.com", "ÃÜÂë", "smtp.163.com" );
$end = $sm->send( "Ä¿±êÓÊÏä", "À´Ô´ÓÊÏä", "ÕâÊDZêÌâ", "ÕâÊÇÓʼþÄÚÈÝ" );
if( $end ) echo $end;
else echo "·¢Ëͳɹ¦£¡";
*/
?>

