/**
* SMTP Connect
*
* @access private
* @param string
* @return string
*/
private function _smtp_connect()
{
@$this->_smtp_connect = fsockopen($this->smtp_host,
$this->smtp_port,
$errno,
$errstr,
$this->smtp_timeout);
if ( ! is_resource($this->_smtp_connect))
{
$this->_set_error_message('email_smtp_error', "host:" .$this->smtp_host. "port:" .$this->smtp_port. " ". $errno." ".mb_convert_encoding ($errstr, 'UTF-8', "ASCII, GB2312, GBK") );
return FALSE;
}
$this->_set_error_message($this->_get_smtp_data());
return $this->_send_command('hello');
}
加上 @$this->_smtp_connect,禁止显示错误;
$this->_set_error_message('email_smtp_error', "host:" .$this->smtp_host. "port:" .$this->smtp_port. " ". $errno." ".mb_convert_encoding ($errstr, 'UTF-8', "ASCII, GB2312, GBK") );
如果主机不存在,这个错误信息包含gb2312中文,插入数据库会出现错误,因为数据库和其它文件是utf8
而这里也应该在出错时,直接中断mail类,退出,不用再执行下面的步骤.还需要修改流程