From 835bdcba536b6df51ff97d1a914b42a7d9072298 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Tue, 14 Feb 2012 16:43:07 +0100 Subject: [PATCH] smtpmail initial prompting fixes (smtpmail-query-smtp-server): Prompt the user for a port number if we can't connect to any of the standard ports. --- lisp/ChangeLog | 2 ++ lisp/mail/smtpmail.el | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 437b3e30f2b..66c9f79006c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -2,6 +2,8 @@ * mail/smtpmail.el (smtpmail-query-smtp-server): Fix typo in the way the ports list is computed. + (smtpmail-query-smtp-server): Prompt the user for a port number if + we can't connect to any of the standard ports (bug#10810). 2012-02-14 Teodor Zlatanov diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index fcec5008c98..8c56d926e0e 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el @@ -598,16 +598,24 @@ The list is in preference order.") (defun smtpmail-query-smtp-server () (let ((server (read-string "Outgoing SMTP mail server: ")) (ports '(25 587)) - stream port) + stream port prompted) (when (and smtpmail-smtp-service (not (member smtpmail-smtp-service ports))) (push smtpmail-smtp-service ports)) (while (and (not smtpmail-smtp-server) (setq port (pop ports))) - (when (setq stream (condition-case () - (open-network-stream "smtp" nil server port) - (quit nil) - (error nil))) + (if (not (setq stream (condition-case () + (open-network-stream "smtp" nil server port) + (quit nil) + (error nil)))) + ;; We've used up the list of default ports, so query the + ;; user. + (when (and (not ports) + (not prompted)) + (push (read-number (format "Port number to use when contacting %s? " + server)) + ports) + (setq prompted t)) (customize-save-variable 'smtpmail-smtp-server server) (customize-save-variable 'smtpmail-smtp-service port) (delete-process stream))) -- 2.39.2