| | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2010, The Roundcube Dev Team | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | Licensed under the GNU General Public License version 3 or | |
| | | | any later version with exceptions for skins & plugins. | |
| | | | See the README file for a full license statement. | |
| | | | | |
| | | | PURPOSE: | |
| | | | Provide SMTP functionality using socket connections | |
| | |
| | | */ |
| | | public function connect($host=null, $port=null, $user=null, $pass=null) |
| | | { |
| | | $RCMAIL = rcmail::get_instance(); |
| | | $RCMAIL = rcube::get_instance(); |
| | | |
| | | // disconnect/destroy $this->conn |
| | | $this->disconnect(); |
| | |
| | | 'smtp_auth_callbacks' => array(), |
| | | )); |
| | | |
| | | $smtp_host = rcube_parse_host($CONFIG['smtp_server']); |
| | | $smtp_host = rcube_utils::parse_host($CONFIG['smtp_server']); |
| | | // when called from Installer it's possible to have empty $smtp_host here |
| | | if (!$smtp_host) $smtp_host = 'localhost'; |
| | | $smtp_port = is_numeric($CONFIG['smtp_port']) ? $CONFIG['smtp_port'] : 25; |
| | |
| | | $helo_host = 'localhost'; |
| | | |
| | | // IDNA Support |
| | | $smtp_host = rcube_idn_to_ascii($smtp_host); |
| | | $smtp_host = rcube_utils::idn_to_ascii($smtp_host); |
| | | |
| | | $this->conn = new Net_SMTP($smtp_host, $smtp_port, $helo_host); |
| | | |
| | |
| | | { |
| | | // IDNA Support |
| | | if (strpos($smtp_user, '@')) { |
| | | $smtp_user = rcube_idn_to_ascii($smtp_user); |
| | | $smtp_user = rcube_utils::idn_to_ascii($smtp_user); |
| | | } |
| | | |
| | | $result = $this->conn->auth($smtp_user, $smtp_pass, $smtp_auth_type, $use_tls, $smtp_authz); |
| | |
| | | */ |
| | | public function debug_handler(&$smtp, $message) |
| | | { |
| | | write_log('smtp', preg_replace('/\r\n$/', '', $message)); |
| | | rcmail::write_log('smtp', preg_replace('/\r\n$/', '', $message)); |
| | | } |
| | | |
| | | |
| | |
| | | $from = $addresses[0]; |
| | | |
| | | // Reject envelope From: addresses with spaces. |
| | | if (strstr($from, ' ')) |
| | | if (strpos($from, ' ') !== false) |
| | | return false; |
| | | |
| | | $lines[] = $key . ': ' . $value; |
| | |
| | | $recipients = implode(', ', $recipients); |
| | | |
| | | $addresses = array(); |
| | | $recipients = rcube_explode_quoted_string(',', $recipients); |
| | | $recipients = rcube_utils::explode_quoted_string(',', $recipients); |
| | | |
| | | reset($recipients); |
| | | while (list($k, $recipient) = each($recipients)) |
| | | { |
| | | $a = rcube_explode_quoted_string(' ', $recipient); |
| | | $a = rcube_utils::explode_quoted_string(' ', $recipient); |
| | | while (list($k2, $word) = each($a)) |
| | | { |
| | | if (strpos($word, "@") > 0 && $word[strlen($word)-1] != '"') |