| | |
| | | * |
| | | * @return bool Returns true on success, or false on error |
| | | */ |
| | | public function connect($host=null, $port=null, $user=null, $pass=null) |
| | | public function connect($host = null, $port = null, $user = null, $pass = null) |
| | | { |
| | | $rcube = rcube::get_instance(); |
| | | |
| | |
| | | |
| | | // let plugins alter smtp connection config |
| | | $CONFIG = $rcube->plugins->exec_hook('smtp_connect', array( |
| | | 'smtp_server' => $host ? $host : $rcube->config->get('smtp_server'), |
| | | 'smtp_port' => $port ? $port : $rcube->config->get('smtp_port', 25), |
| | | 'smtp_user' => $user ? $user : $rcube->config->get('smtp_user'), |
| | | 'smtp_pass' => $pass ? $pass : $rcube->config->get('smtp_pass'), |
| | | 'smtp_server' => $host ?: $rcube->config->get('smtp_server'), |
| | | 'smtp_port' => $port ?: $rcube->config->get('smtp_port', 25), |
| | | 'smtp_user' => $user !== null ? $user : $rcube->config->get('smtp_user'), |
| | | 'smtp_pass' => $pass !== null ? $pass : $rcube->config->get('smtp_pass'), |
| | | 'smtp_auth_cid' => $rcube->config->get('smtp_auth_cid'), |
| | | 'smtp_auth_pw' => $rcube->config->get('smtp_auth_pw'), |
| | | 'smtp_auth_type' => $rcube->config->get('smtp_auth_type'), |
| | |
| | | $result = $this->conn->connect($CONFIG['smtp_timeout']); |
| | | |
| | | if (is_a($result, 'PEAR_Error')) { |
| | | $this->response[] = "Connection failed: ".$result->getMessage(); |
| | | $this->error = array('label' => 'smtpconnerror', 'vars' => array('code' => $this->conn->_code)); |
| | | $this->response[] = "Connection failed: " . $result->getMessage(); |
| | | |
| | | list($code,) = $this->conn->getResponse(); |
| | | $this->error = array('label' => 'smtpconnerror', 'vars' => array('code' => $code)); |
| | | $this->conn = null; |
| | | |
| | | return false; |
| | | } |
| | | |
| | |
| | | |
| | | $smtp_user = str_replace('%u', $rcube->get_user_name(), $CONFIG['smtp_user']); |
| | | $smtp_pass = str_replace('%p', $rcube->get_user_password(), $CONFIG['smtp_pass']); |
| | | $smtp_auth_type = empty($CONFIG['smtp_auth_type']) ? NULL : $CONFIG['smtp_auth_type']; |
| | | $smtp_auth_type = $CONFIG['smtp_auth_type'] ?: null; |
| | | |
| | | if (!empty($CONFIG['smtp_auth_cid'])) { |
| | | $smtp_authz = $smtp_user; |
| | |
| | | $result = $this->conn->auth($smtp_user, $smtp_pass, $smtp_auth_type, $use_tls, $smtp_authz); |
| | | |
| | | if (is_a($result, 'PEAR_Error')) { |
| | | $this->error = array('label' => 'smtpautherror', 'vars' => array('code' => $this->conn->_code)); |
| | | $this->response[] .= 'Authentication failure: ' . $result->getMessage() . ' (Code: ' . $result->getCode() . ')'; |
| | | list($code,) = $this->conn->getResponse(); |
| | | $this->error = array('label' => 'smtpautherror', 'vars' => array('code' => $code)); |
| | | $this->response[] = 'Authentication failure: ' . $result->getMessage() |
| | | . ' (Code: ' . $result->getCode() . ')'; |
| | | |
| | | $this->reset(); |
| | | $this->disconnect(); |
| | | |
| | | return false; |
| | | } |
| | | } |