PHP 基于SMTP协议+socket 简单的邮件发送

class SMTPMail{
	private $user;
	private $host;
	private $port = 25;
	private $pass;
	private $socket;

	public function __construct($host,$port,$user,$pass){
		$this->host = $host;
		$this->port = $port;
		$this->user = $user;
		$this->pass = $pass;
		$this->socket = fsockopen($this->host,$this->port,$error,$errorstr,10);
		if(!$this->socket){
			exit("Error number:$error,Message:$errorstr");die;
		}
		$response = fgets($this->socket);
		if(strstr($response,'220')===false){
			exit('error');
		}
	}


	private function do_command($cmd,$code){
		fputs($this->socket,$cmd);
		$response = fgets($this->socket,512);
		if(strstr($response, "$code")===false){
			exit($response); 
			return false;
		}
		return true;
	}

	public function send_email($from,$to,$suject,$body){
		$msg = 'From:'.$from."\r\n";
		$msg .= 'To:'.$to."\r\n";
		$msg .= "Subject:".$suject."\r\n";
		$msg .= "Content -Type: text/plain;\r\n";
		$msg .= "charset=gb2312\r\n\r\n";
		$msg .= $body;
			//发送信息
		$this->do_command("HELO smtp.qq.com\r\n",250);
		$this->do_command("AUTH LOGIN\r\n",334);
		$this->do_command(base64_encode($this->user)."\r\n",334);
		$this->do_command(base64_encode($this->pass)."\r\n",235);
		$this->do_command("MAIL FROM:<".$from.">\r\n",250);
		$this->do_command("RCPT TO:<".$to.">\r\n",250);
		$this->do_command("DATA\r\n",354);
		$this->do_command($msg."\r\n.\r\n",250);
		$this->do_command("QUIT\r\n",221);
		return true;
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值