| | |
| | | | program/include/rcube_smtp.php | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland | |
| | | | Copyright (C) 2005-2010, The Roundcube Dev Team | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | |
| | | $helo_host = 'localhost'; |
| | | |
| | | // IDNA Support |
| | | $smtp_host = idn_to_ascii($smtp_host); |
| | | $smtp_host = rcube_idn_to_ascii($smtp_host); |
| | | |
| | | $this->conn = new Net_SMTP($smtp_host, $smtp_port, $helo_host); |
| | | |
| | | if($RCMAIL->config->get('smtp_debug')) |
| | | if ($RCMAIL->config->get('smtp_debug')) |
| | | $this->conn->setDebug(true, array($this, 'debug_handler')); |
| | | |
| | | // try to connect to server and exit on failure |
| | |
| | | $this->error = array('label' => 'smtpconnerror', 'vars' => array('code' => $this->conn->_code)); |
| | | $this->conn = null; |
| | | return false; |
| | | } |
| | | |
| | | // workaround for timeout bug in Net_SMTP 1.5.[0-1] (#1487843) |
| | | if (method_exists($this->conn, 'setTimeout') |
| | | && ($timeout = ini_get('default_socket_timeout')) |
| | | ) { |
| | | $this->conn->setTimeout($timeout); |
| | | } |
| | | |
| | | $smtp_user = str_replace('%u', $_SESSION['username'], $CONFIG['smtp_user']); |
| | |
| | | if ($smtp_user && $smtp_pass) |
| | | { |
| | | // IDNA Support |
| | | if (strpos($smtp_user, '@')) |
| | | $smtp_user = idn_to_ascii($smtp_user); |
| | | if (strpos($smtp_user, '@')) { |
| | | $smtp_user = rcube_idn_to_ascii($smtp_user); |
| | | } |
| | | |
| | | $result = $this->conn->auth($smtp_user, $smtp_pass, $smtp_auth_type, $use_tls, $smtp_authz); |
| | | |