summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-07-14 16:34:34 +0000
committeralecpl <alec@alec.pl>2009-07-14 16:34:34 +0000
commit19862b5586343205dc381339bfea46915dd498d3 (patch)
treed0ee98fb27c078959c36fe6ea34a0f1ca7e4444c
parentec31b6f9f30d293078725e4d94ad40f1c5495daa (diff)
- added 'smtp_debug' option
-rw-r--r--CHANGELOG2
-rw-r--r--config/main.inc.php.dist3
-rw-r--r--program/include/rcube_smtp.inc9
3 files changed, 13 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index dbcde2695..2ec9a7165 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,7 +5,7 @@ CHANGELOG RoundCube Webmail
- Added hook to write_log function (#1485971)
- Performance improvements by use UID commands (#1485690)
- Fix HTML editor tabIndex setting (#1485972)
-- Added 'imap_debug' option
+- Added 'imap_debug' and 'smtp_debug' options
- Support strftime's format modifiers in date_* options (#1484806)
- Support %h variable in 'smtp_server' option (#1485766)
- Show SMTP errors in browser (#1485927)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index b7bf2adaa..6050a4af9 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -130,6 +130,9 @@ $rcmail_config['sql_debug'] = false;
// Log IMAP conversation to <log_dir>/imap or to syslog
$rcmail_config['imap_debug'] = false;
+// Log SMTP conversation to <log_dir>/smtp or to syslog
+$rcmail_config['smtp_debug'] = false;
+
// How many seconds must pass between emails sent by a user
$rcmail_config['sendmail_delay'] = 0;
diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index db681af05..9e1e66426 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -92,6 +92,9 @@ function smtp_mail($from, $recipients, &$headers, &$body, &$response, &$error)
$SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
+ if($RCMAIL->config->get('smtp_debug'))
+ $SMTP_CONN->setDebug(true, 'smtp_debug_handler');
+
// try to connect to server and exit on failure
$result = $SMTP_CONN->connect($smtp_timeout);
if (PEAR::isError($result))
@@ -247,6 +250,12 @@ function smtp_disconnect()
}
}
+/* this is our own debug handler for the SMTP connection */
+function smtp_debug_handler(&$smtp, $message)
+ {
+ write_log('smtp', preg_replace('/\r\n$/', '', $message));
+ }
+
/**
* Take an array of mail headers and return a string containing