have long been in the file-based prefs backend
- Removed the Address Take (abook_take) plugin; please see the Add Address
(third party) plugin.
+ - Allow a different server address for the POP server to be configured when
+ using POP before SMTP.
Version 1.5.1 (branched on 2006-02-12)
--------------------------------------
}
}
- function initStream($message, $domain, $length=0, $host='', $port='', $user='', $pass='', $authpop=false) {
+ function initStream($message, $domain, $length=0, $host='', $port='', $user='', $pass='', $authpop=false, $pop_host='') {
global $use_smtp_tls,$smtp_auth_mech;
if ($authpop) {
- $this->authPop($host, '', $user, $pass);
+ $this->authPop($pop_host, '', $user, $pass);
}
$rfc822_header = $message->rfc822_header;
$useSendmail = 'false' if ( lc($useSendmail) ne 'true' );
$sendmail_path = "/usr/sbin/sendmail" if ( !$sendmail_path );
$pop_before_smtp = 'false' if ( !$pop_before_smtp );
+$pop_before_smtp_host = '' if ( !$pop_before_smtp_host );
$default_unseen_notify = 2 if ( !$default_unseen_notify );
$default_unseen_type = 1 if ( !$default_unseen_type );
$config_use_color = 0 if ( !$config_use_color );
$YesNo = 'n';
$YesNo = 'y' if ( lc($pop_before_smtp) eq 'true' );
- print "Use pop before SMTP (y/n) [$WHT$YesNo$NRM]: $WHT";
+ print "Use POP before SMTP (y/n) [$WHT$YesNo$NRM]: $WHT";
$new_pop_before_smtp = <STDIN>;
$new_pop_before_smtp =~ tr/yn//cd;
- return 'true' if ( $new_pop_before_smtp eq "y" );
- return 'false' if ( $new_pop_before_smtp eq "n" );
- return $pop_before_smtp;
+ if ( $new_pop_before_smtp eq "y" ) {
+ $new_pop_before_smtp = "true";
+ } elsif ( $new_pop_before_smtp eq "n" ) {
+ $new_pop_before_smtp = "false";
+ } else {
+ $new_pop_before_smtp = $pop_before_smtp;
+ }
+
+ # if using POP before SMTP, allow setting of custom POP server address
+ if ($new_pop_before_smtp eq "true") {
+ print "$NRM\nIf the address of the POP server is not the same as\n";
+ print "your SMTP server, you may specify it here. Leave blank (to\n";
+ print "clear this, enter only spaces) to use the same address as\n";
+ print "your SMTP server.\n";
+ print "POP before SMTP server address [$WHT$pop_before_smtp_host$NRM]: $WHT";
+
+ $new_pop_before_smtp_host = <STDIN>;
+ if ( $new_pop_before_smtp_host eq "\n" ) {
+ $new_pop_before_smtp_host = $pop_before_smtp_host;
+ } elsif ($new_pop_before_smtp_host =~ /^\s+$/) {
+ $new_pop_before_smtp_host = '';
+ } else {
+ $new_pop_before_smtp_host =~ s/[\r|\n]//g;
+ }
+ $pop_before_smtp_host = $new_pop_before_smtp_host;
+ }
+
+ return $new_pop_before_smtp;
}
# imap_server_type
# boolean
print CF "\$pop_before_smtp = $pop_before_smtp;\n";
# string
+ print CF "\$pop_before_smtp_host = '$pop_before_smtp_host';\n";
+ # string
print CF "\$imap_server_type = '$imap_server_type';\n";
# boolean
print CF "\$invert_time = $invert_time;\n";
*/
$pop_before_smtp = false;
+/**
+ * POP before SMTP server address
+ *
+ * When using POP3 before SMTP, if the POP server address is
+ * not the same as the SMTP server address, specify it here.
+ * If this is left empty, the SMTP server address will be
+ * used by default.
+ * @global bool $pop_before_smtp_host
+ */
+$pop_before_smtp_host = '';
+
/*** Folder Settings ***/
/**
if (!$useSendmail) {
require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php');
$deliver = new Deliver_SMTP();
- global $smtpServerAddress, $smtpPort, $pop_before_smtp, $domain;
+ global $smtpServerAddress, $smtpPort, $pop_before_smtp,
+ $domain, $pop_before_smtp_host;
$authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
+ if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress;
$user = '';
$pass = '';
get_smtp_user($user, $pass);
$stream = $deliver->initStream($message,$domain,0,
- $smtpServerAddress, $smtpPort, $user, $pass, $authPop);
+ $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
} else {
require_once(SM_PATH . 'class/deliver/Deliver_SendMail.class.php');
global $sendmail_path, $sendmail_args;
if (!$useSendmail && !$draft) {
require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php');
$deliver = new Deliver_SMTP();
- global $smtpServerAddress, $smtpPort, $pop_before_smtp;
+ global $smtpServerAddress, $smtpPort, $pop_before_smtp, $pop_before_smtp_host;
$authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
+ if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress;
get_smtp_user($user, $pass);
$stream = $deliver->initStream($composeMessage,$domain,0,
- $smtpServerAddress, $smtpPort, $user, $pass, $authPop);
+ $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
} elseif (!$draft) {
require_once(SM_PATH . 'class/deliver/Deliver_SendMail.class.php');
global $sendmail_path, $sendmail_args;
/* POP before SMTP */
if($pop_before_smtp) {
- $stream = fsockopen($smtpServerAddress, 110, $err_no, $err_str);
+ if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress;
+ $stream = fsockopen($pop_before_smtp_host, 110, $err_no, $err_str);
if (!$stream) {
- do_err("Error connecting to POP Server ($smtpServerAddress:110) "
+ do_err("Error connecting to POP Server ($pop_before_smtp_host:110) "
. $err_no . ' : ' . htmlspecialchars($err_str));
}
$tmp = fgets($stream, 1024);
if (substr($tmp, 0, 3) != '+OK') {
- do_err("Error connecting to POP Server ($smtpServerAddress:110)"
+ do_err("Error connecting to POP Server ($pop_before_smtp_host:110)"
. ' '.htmlspecialchars($tmp));
}
fputs($stream, 'QUIT');
} else {
require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php');
$deliver = new Deliver_SMTP();
- global $smtpServerAddress, $smtpPort, $pop_before_smtp;
+ global $smtpServerAddress, $smtpPort, $pop_before_smtp, $pop_before_smtp_host;
$authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
+ if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress;
get_smtp_user($user, $pass);
$stream = $deliver->initStream($composeMessage,$domain,0,
- $smtpServerAddress, $smtpPort, $user, $pass, $authPop);
+ $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
}
$success = false;
if ($stream) {