diff options
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | config/main.inc.php.dist | 3 | ||||
-rw-r--r-- | program/include/rcube_smtp.inc | 9 |
3 files changed, 13 insertions, 1 deletions
@@ -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 |