跳至
调用示例:
smtp('smtp.qq.com'); //邮件发送服务器
$smtp->pors(25); //邮件服务器端口
$smtp->login( '369758482@qq.com'); //邮件服务器登录用户
$smtp->pass('您的邮箱密码'); //邮件服务器登录密码
$smtp->mails( '1140714215@qq.com'); //邮件接收人
$smtp->from( '369758482@qq.com'); //邮件发送人
$smtp->come( 'baiyi1983000@163.com'); //接收邮件回复地址
$smtp->title('这是一封邮件测试地址邮件'); //邮件主题
$smtp->body('这是一封邮件测试内容邮件'); //邮件内容
$smtp->send(); //发送邮件
echo $smtp -> mesg === true ? '邮件发送成功' : $smtp -> mesg; //邮件发送结果
2. [文件] phpmailsmtp.class.php ~ 4kb
smtp = $smtp; return $this; }
public function pors( $pors = 25 ){ $this -> pors = $pors; return $this; }
public function login( $login = '' ) { $this -> loginmail = $login; return $this; }
public function pass( $pass = '' ){ $this -> loginpass = $pass; return $this; }
public function mails( $mail = '' ) { $this -> mailto = $mail; return $this; }
public function from( $form = '' ) { $this -> mailfrom = $form; return $this; }
public function come( $come = '' ) { $this -> mailcome = $come; return $this; }
public function title( $title = '' ) { $this -> title = $title; return $this; }
public function body( $body = '' ) { $this -> body = $body; return $this; }
public function send(){
$fp = @fsockopen( $this->smtp, $this->pors);
@set_socket_blocking($fp, true);
$server = @fgets($fp, 512);
if( !$this->msgerr( $server, '/^220/i', '邮件服务器连接失败' ) ) { return false; }
@fputs($fp, 'helo phpsetmail' . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^250/i', '与服务器会话失败' ) ) { return false; }
@fputs($fp, 'auth login' . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^334/i', '请求与服务器进行用户验证失败' ) ) { return false; }
@fputs($fp, base64_encode( $this->loginmail ) . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^334/i', '用户验证失败[用户名]' ) ) { return false; }
@fputs($fp, base64_encode( $this->loginpass ) . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^235/i', '用户验证失败[密码]' ) ) { return false; }
@fputs($fp, 'mail from:loginmail . ">\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^250/i', '发送用户验证失败' ) ) { return false; }
@fputs($fp, 'rcpt to:mailto . ">\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^250/i', '接受用户名验证失败' ) ) { return false; }
@fputs($fp, 'data' . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^354/i', '请求与服务器发送邮件数据失败' ) ) { return false; }
@fputs($fp, 'from:' . $this->mailcome ."\r\n");
@fputs($fp, 'subject:' . $this->title . "\r\n");
@fputs($fp, 'to:' . $this->mailto . "\r\n");
@fputs($fp, "\r\n");
@fputs($fp, $this->body . "\r\n");
@fputs($fp, '.' . "\r\n");
$server = @fgets($fp, 2000);
if( !$this->msgerr( $server, '/^250/i', '发送邮件失败' ) ) { return false; }
@@fputs($fp, 'quit' . "\r\n");
@fclose($fp);
unset( $fp, $server );
$this -> mesg = true;
return true;
}
private function msgerr( $objserver = '', $rezg = '/(.*)/i', $msg = '' ) {
if ( !preg_match( $rezg, $objserver ) ) {
$this -> mesg = $msg . $objserver;
return false;
} else {
$this -> mesg = true;
return true;
}
}
}