| program/include/rcube_smtp.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_smtp.inc 399 2006-12-06 21:37:37Z thomasb $
+ $Id: rcube_smtp.inc 1360 2008-05-07 09:38:44Z thomasb $
*/
+/**
+ * SMTP delivery functions
+ *
+ * @package Mail
+ */
// include required PEAR classes
require_once('Net/SMTP.php');
* @param string The full text of the message body, including any Mime parts, etc.
*
* @return bool Returns TRUE on success, or FALSE on error
- * @access public
*/
function smtp_mail($from, $recipients, &$headers, &$body, &$response)
{
- global $SMTP_CONN, $CONFIG;
+ global $SMTP_CONN, $CONFIG, $RCMAIL;
$smtp_timeout = null;
$smtp_host = $CONFIG['smtp_server'];
$smtp_port = is_numeric($CONFIG['smtp_port']) ? $CONFIG['smtp_port'] : 25;
$smtp_host_url = parse_url($CONFIG['smtp_server']);
// overwrite port
- if ($smtp_host_url['host'] && $smtp_host_url['port'])
+ if (isset($smtp_host_url['host']) && isset($smtp_host_url['port']))
{
$smtp_host = $smtp_host_url['host'];
$smtp_port = $smtp_host_url['port'];
}
// re-write smtp host
- if ($smtp_host_url['host'] && $smtp_host_url['scheme'])
+ if (isset($smtp_host_url['host']) && isset($smtp_host_url['scheme']))
$smtp_host = sprintf('%s://%s', $smtp_host_url['scheme'], $smtp_host_url['host']);
// create Net_SMTP object and connect to server
- if (!is_object($smtp_conn))
+ if (!is_object($SMTP_CONN))
{
- $helo_host = !empty($_SERVER['server_name']) ? $_SERVER['server_name'] : 'localhost';
+ $helo_host = empty($CONFIG['smtp_helo_host']) ? (empty($_SERVER['SERVER_NAME']) ? 'localhost' : $_SERVER['SERVER_NAME']) : $CONFIG['smtp_helo_host'];
$SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
// set debugging
$smtp_user = $CONFIG['smtp_user'];
if (strstr($CONFIG['smtp_pass'], '%p'))
- $smtp_pass = str_replace('%p', decrypt_passwd($_SESSION['password']), $CONFIG['smtp_pass']);
+ $smtp_pass = str_replace('%p', $RCMAIL->decrypt_passwd($_SESSION['password']), $CONFIG['smtp_pass']);
else
$smtp_pass = $CONFIG['smtp_pass'];
if (PEAR::isError($result))
{
smtp_reset();
- $response[] .= "Authentication failure: ".$result->getMessage();
+ $response[] .= 'Authentication failure: ' . $result->getMessage() . ' (Code: ' . $result->getCode() . ')';
return FALSE;
}
}
}
+/**
+ * @access private
+ */
function smtp_explode_quoted_str($delimiter, $string)
{
$quotes=explode("\"", $string);