From: fisal@zephra.com (Fidel Salas)
Subject: Re: make smtpmail.el use the new netrc.el file
Date: 7 May 2002 12:45:28 -0700 [thread overview]
Message-ID: <ab83aa8a.0205071145.ec2e222@posting.google.com> (raw)
In-Reply-To: iluwuuw7v7g.fsf@extundo.com
I am using the latest smtpmail.el and netrc.el code. After compiling
netrc and then smtpmail, I got the following error:
Compiling file /usr/local/share/emacs/21.1/lisp/mail/smtpmail.el at
Mon May 6 17:59:04 2002
** The following functions are not known to be defined:
netrc-machine,
netrc-get
I got around this by insertin the following lines in smtpmail before
compiling:
(autoload 'netrc-machine "netrc")
(autoload 'netrc-get "netrc")
I have a problem when I attempt to send mail. I have set
smtpmail-auth-credentials to: "my smtp host" 25 "my username nil
When I try to send mail, I get prompted for my password but then get
the following error message:
'smtpmail-try-auth-methods: Mechanism nil not implemented'
Any help is appreciated.
Thanks
Fidel
jas@extundo.com (Simon Josefsson) wrote in message news:<iluwuuw7v7g.fsf@extundo.com>...
> This patch makes smtpmail.el take advantage of the new netrc.el stuff.
>
> I bumped :version on the variable to "21.3". Is this correct? I
> wasn't sure about that.
>
> I am sending this message with SMTP authentication using ~/.authinfo,
> but I also tested the old `smtpmail-auth-credentials' as well. Not
> tested by anyone but me though. Ted, if you can/want, please test
> it. (Ted, netrc.el has been added to Emacs, XEmacs and Oort Gnus now.)
>
> 2002-04-24 Simon Josefsson <jas@extundo.com>
>
> * mail/smtpmail.el (smtpmail-auth-credentials): Support netrc
> files as well.
> (smtpmail-try-auth-methods): Support netrc data.
> (netrc-parse): Autoload netrc.
>
> --- smtpmail.el.~1.38.~ Wed Apr 24 21:13:38 2002
> +++ smtpmail.el Wed Apr 24 21:26:11 2002
> @@ -40,7 +40,7 @@
> ;;(setq smtpmail-local-domain "YOUR DOMAIN NAME")
> ;;(setq smtpmail-sendto-domain "YOUR DOMAIN NAME")
> ;;(setq smtpmail-debug-info t) ; only to debug problems
> -;;(setq smtpmail-auth-credentials
> +;;(setq smtpmail-auth-credentials ; or use ~/.authinfo
> ;; '(("YOUR SMTP HOST" 25 "username" "password")))
> ;;(setq smtpmail-starttls-credentials
> ;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
> @@ -73,6 +73,7 @@
> (autoload 'message-make-date "message")
> (autoload 'message-make-message-id "message")
> (autoload 'rfc2104-hash "rfc2104")
> +(autoload 'netrc-parse "netrc")
>
> ;;;
> (defgroup smtpmail nil
> @@ -150,19 +151,21 @@
> :type 'directory
> :group 'smtpmail)
>
> -(defcustom smtpmail-auth-credentials '(("" 25 "" nil))
> - "Specify username and password for servers.
> -It is a list of four-element lists that contain, in order,
> +(defcustom smtpmail-auth-credentials "~/.authinfo"
> + "Specify username and password for servers, directly or via .netrc file.
> +This variable can either be a filename pointing to a file in netrc(5)
> +format, or list of four-element lists that contain, in order,
> `servername' (a string), `port' (an integer), `user' (a string) and
> -`password' (a string, or nil to query the user when needed).
> -If you need to enter a `realm' too, add it to the user string, so that
> -it looks like `user@realm'."
> - :type '(repeat (list (string :tag "Server")
> +`password' (a string, or nil to query the user when needed). If you
> +need to enter a `realm' too, add it to the user string, so that it
> +looks like `user@realm'."
> + :type '(choice file
> + (repeat (list (string :tag "Server")
> (integer :tag "Port")
> (string :tag "Username")
> (choice (const :tag "Query when needed" nil)
> - (string :tag "Password"))))
> - :version "21.1"
> + (string :tag "Password")))))
> + :version "21.3"
> :group 'smtpmail)
>
> (defcustom smtpmail-starttls-credentials '(("" 25 "" ""))
> @@ -460,7 +467,16 @@
> (defun smtpmail-try-auth-methods (process supported-extensions host port)
> (let* ((mechs (cdr-safe (assoc 'auth supported-extensions)))
> (mech (car (smtpmail-intersection smtpmail-auth-supported mechs)))
> - (cred (smtpmail-find-credentials smtpmail-auth-credentials host port))
> + (cred (if (stringp smtpmail-auth-credentials)
> + (let* ((netrc (netrc-parse smtpmail-auth-credentials))
> + (hostentry (netrc-machine
> + netrc host (format "%s" (or port "smtp"))
> + "smtp")))
> + (list host port
> + (netrc-get hostentry "login")
> + (netrc-get hostentry "password")))
> + (smtpmail-find-credentials
> + smtpmail-auth-credentials host port)))
> (passwd (when cred
> (or (smtpmail-cred-passwd cred)
> (read-passwd
> @@ -507,7 +523,8 @@
> (t
> (error "Mechanism %s not implemented" mech)))
> ;; Remember the password.
> - (unless (smtpmail-cred-passwd cred)
> + (when (and (not (stringp smtpmail-auth-credentials))
> + (null (smtpmail-cred-passwd cred)))
> (setcar (cdr (cdr (cdr cred))) passwd)))))
>
> (defun smtpmail-via-smtp (recipient smtpmail-text-buffer)
prev parent reply other threads:[~2002-05-07 19:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-24 19:28 make smtpmail.el use the new netrc.el file Simon Josefsson
2002-05-07 19:45 ` Fidel Salas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab83aa8a.0205071145.ec2e222@posting.google.com \
--to=fisal@zephra.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).