]> git.eshelyaron.com Git - emacs.git/commitdiff
smtpmail initial prompting fixes
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 14 Feb 2012 15:43:07 +0000 (16:43 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 14 Feb 2012 15:43:07 +0000 (16:43 +0100)
(smtpmail-query-smtp-server): Prompt the user for a port number if
we can't connect to any of the standard ports.

lisp/ChangeLog
lisp/mail/smtpmail.el

index 437b3e30f2b1a47ebedc2cedc53f86a0bfcecbfd..66c9f79006c7cb4e918e2fe6ee8f1ed759e40bdd 100644 (file)
@@ -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  <tzz@lifelogs.com>
 
index fcec5008c9844df577cfad1b3cf735993d237ea8..8c56d926e0ed1cb6cbdb96549def69df74fc733e 100644 (file)
@@ -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)))