Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

added smtp auth method setting through config file

  • Loading branch information...
commit d206c1f4d798068623b0451d427f4ed5769ebb4b 1 parent 17fc718
svncommit authored
Showing with 22 additions and 5 deletions.
  1. +8 −2 config/main.inc.php.dist
  2. +14 −3 program/include/rcube_smtp.inc
View
10 config/main.inc.php.dist
@@ -42,12 +42,18 @@ $rcmail_config['smtp_server'] = '';
// SMTP port (default is 25)
$rcmail_config['smtp_port'] = 25;
-// SMTP username (if required)
+// SMTP username (if required) if you use %u as the username RoundCube
+// will use the current username for login
$rcmail_config['smtp_user'] = '';
-// SMTP password (if required)
+// SMTP password (if required) if you use %p as the password RoundCube
+// will use the current user's password for login
$rcmail_config['smtp_pass'] = '';
+// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
+// best server supported one)
+$rcmail_config['smtp_auth_type'] = '';
+
// Log sent messages
$rcmail_config['smtp_log'] = TRUE;
View
17 program/include/rcube_smtp.inc
@@ -72,12 +72,23 @@ function smtp_mail($from, $recipients, $headers, $body)
$SMTP_ERROR .= "Connection failed\n";
return FALSE;
}
-
-
+
// attempt to authenticate to the SMTP server
if ($CONFIG['smtp_user'] && $CONFIG['smtp_pass'])
{
- if (PEAR::isError($SMTP_CONN->auth($CONFIG['smtp_user'], $CONFIG['smtp_pass'])))
+ if ($CONFIG['smtp_user'] == '%u')
+ $smtp_user = $_SESSION['username'];
+ else
+ $smtp_user = $CONFIG['smtp_user'];
+
+ if ($CONFIG['smtp_pass'] == '%p')
+ $smtp_pass = decrypt_passwd($_SESSION['password']);
+ else
+ $smtp_pass = $CONFIG['smtp_pass'];
+
+ $smtp_auth_type = smpty($CONFIG['smtp_auth_type']) ? NULL : $CONFIG['smtp_auth_type'];
+
+ if (PEAR::isError($SMTP_CONN->auth($smtp_user, $smtp_pass, $smtp_auth_type)))
{
smtp_reset();
$SMTP_ERROR .= "authentication failure\n";
Please sign in to comment.
Something went wrong with that request. Please try again.