From: Vijay Lakshminarayanan <laksvij@gmail.com>
To: Karl Fogel <kfogel@red-bean.com>
Cc: Leo <sdl.web@gmail.com>, emacs-devel@gnu.org
Subject: Re: more on starttls, gnutls-cli and using tls for mail
Date: Sun, 14 Aug 2011 17:32:39 +0530 [thread overview]
Message-ID: <87fwl4nqu8.fsf@gmail.com> (raw)
In-Reply-To: <87ipq0k0q0.fsf@red-bean.com> (Karl Fogel's message of "Sun, 14 Aug 2011 01:42:47 -0400")
Karl Fogel <kfogel@red-bean.com> writes:
> Leo <sdl.web@gmail.com> writes:
>>I use smtpmail-auth-credentials to pass different user names for the
>>gmail smtps I am using. With the new smtpmail.el I haven't found a way
>>to do that.
>
> Yes, I'm in that situation too now -- which is why I think it's so
> unfortunate that `smtpmail-auth-credentials' went away :-(.
>
> I've found a way to do it, using the new smtpmail.el, but it's ugly.
> I have `message-send-hook' set up ~/.authinfo for every mail message,
> and then I remove the file afterwards in `message-sent-hook'. Search
> for "kf-set-up-authinfo" in [1] if you want the code.
>
> Naturally I hope we'll restore the lost functionality to smtpmail.el, so
> this kluge will become unnecessary! The ideal behavior, I think, would
> be to pay attention to ~/.authinfo when it is present, but fall back to
> trying `smtpmail-auth-credentials' when it's not.
I have multiple GMail accounts and I use a hook to use the correct
authentication depending upon which account I'm using.
The hook function is
(defun change-smtp ()
"Change the SMTP server according to the current from line."
(save-excursion
(let* ((username-fn
(lambda (from)
(when (string-match "\\<\\([A-Za-z.]*\\)@" from)
(setq from (match-string 1 from))
;; Gmail addresses can have dots in them, so sending
;; an email to abcd@gmail.com or a.b.c.d@gmail.com
;; will go to the same destination. So credentials
;; for both addresses are stored under the symbol
;; `abcd'.
(setq from (replace-regexp-in-string "\\." "" from))
(intern from))))
(from (save-restriction
(message-narrow-to-headers)
(message-fetch-field "from")))
(username (funcall username-fn from))
(credentials (cdr (assoc username *gmail-auth-credentials*))))
(if credentials
(setq smtpmail-starttls-credentials credentials
smtpmail-auth-credentials credentials)
(error "Could not find auth credentials for %s" from)))))
(add-hook 'message-send-hook 'change-smtp)
where the variable *gmail-auth-credentials* maintains all my user
account info as an alist in the form:
((account1 ("smtp.gmail.com" 587 "account1@gmail.com" "password1"))
(account2 ("smtp.gmail.com" 587 "account2@gmail.com" "password2"))
(account3 ("smtp.gmail.com" 587 "account3@gmail.com" "password3"))
(account4 ("smtp.gmail.com" 587 "acc.ount4@gmail.com" "password4")))
I save it in a file ~/.gmails.gpg and in my .gnus I have
(eval-when-compile
(load "~/.gmails.gpg"))
Takes care of authentication. Of course, now that this is out, someone
could possibly get my email account information by convincing me to
download their cool emacs package. But I don't think I'm that important :-)
Hope this code helps someone. As with other Free Software licenses,
this comes with NO WARRANTY.
> -Karl
>
> [1] http://svn.red-bean.com/repos/kfogel/trunk/.emacs
>
--
Cheers
~vijay
Gnus should be more complicated.
next prev parent reply other threads:[~2011-08-14 12:02 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-14 1:19 more on starttls, gnutls-cli and using tls for mail T. V. Raman
2011-08-14 1:26 ` Karl Fogel
2011-08-14 3:40 ` Leo
2011-08-14 5:42 ` Karl Fogel
2011-08-14 12:02 ` Vijay Lakshminarayanan [this message]
2011-08-14 21:07 ` Leo
2011-08-15 3:53 ` Vijay Lakshminarayanan
2011-08-15 4:27 ` Leo
2011-08-15 7:41 ` Vijay Lakshminarayanan
2011-08-15 6:03 ` Tim Cross
2011-08-15 7:38 ` Vijay Lakshminarayanan
2011-08-17 1:54 ` Tim Cross
2011-08-17 14:28 ` Karl Fogel
2011-08-17 22:48 ` Tim Cross
2011-08-18 0:33 ` chad
2011-08-18 3:11 ` Stephen J. Turnbull
2011-08-17 17:27 ` Vijay Lakshminarayanan
2011-08-15 7:47 ` Richard Riley
2011-08-15 9:21 ` David Engster
2011-08-17 2:03 ` Tim Cross
2011-08-17 7:03 ` David Engster
2011-08-15 16:25 ` Dimitri Fontaine
2011-08-16 9:33 ` Leo
2011-08-16 10:12 ` Dimitri Fontaine
2011-08-17 2:13 ` Tim Cross
2011-08-17 1:08 ` Richard Riley
2011-08-14 6:24 ` Roland Winkler
2011-08-14 6:32 ` Roland Winkler
2011-08-14 16:23 ` Karl Fogel
2011-08-15 15:21 ` Roland Winkler
2011-08-17 2:09 ` Tim Cross
2011-09-25 13:08 ` Ted Zlatanov
2011-09-25 17:26 ` Karl Fogel
2011-09-26 17:22 ` Ted Zlatanov
2011-09-27 15:28 ` Karl Fogel
2011-08-17 21:06 ` Multiple SMTP accounts with smtpmail.el (was: more on starttls, gnutls-cli and using tls for mail) Lars Magne Ingebrigtsen
2011-08-18 3:19 ` Multiple SMTP accounts with smtpmail.el Leo
2011-08-18 14:20 ` Karl Fogel
2011-08-18 16:41 ` Vijay Lakshminarayanan
2011-08-19 14:42 ` Lars Magne Ingebrigtsen
2011-08-21 2:13 ` Karl Fogel
2011-08-21 4:16 ` Lars Magne Ingebrigtsen
2011-08-22 7:22 ` Glenn Morris
2011-09-25 13:10 ` Ted Zlatanov
2011-09-26 18:06 ` Lars Magne Ingebrigtsen
2011-09-26 19:24 ` Ted Zlatanov
2011-09-25 22:46 ` Rasmus
2011-08-14 17:12 ` more on starttls, gnutls-cli and using tls for mail Chong Yidong
2011-08-17 20:58 ` Lars Magne Ingebrigtsen
-- strict thread matches above, loose matches on Subject: below --
2011-08-14 2:10 raman
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fwl4nqu8.fsf@gmail.com \
--to=laksvij@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=kfogel@red-bean.com \
--cc=sdl.web@gmail.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.