Serghei Iakovlev via "Announcements and discussions for GNUS, the GNU Emacs Usenet newsreader (in English)" wrote:
> James Thomas writes: > > >> But there seems to be a better way; see: >> https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/gnus/message.el#n5027 >> >> Basically if you name the function as message-send-mail-with-<name>, you >> should be able to directly call it from X-Message-SMTP-Method. > > > So, essentially, you’re suggesting implementing two functions like: > > (defun message-send-mail-with-protonmail ()) > (defun message-send-mail-with-gmail ()) > > > and then specifying them in `gnus-posting-styles as': > > ("X-Message-SMTP-Method" "protonmail 127.0.0.1 1025") > ("X-Message-SMTP-Method" "gmail smtp.gmail.com 587") Need not be that complex, AFAICT. The method could simply be something like "starttls 127.0.0.1 1025" where the only thing you would do is let-bind the stream type and call the default. > Did I understand you correctly? If that’s what you meant, I think > I’ll pass on this approach. The small hook I’ve implemented, which > has now been simplified further, seems like the most concise option > for my needs: > > (defun set-smtp-stream-type-by-domain () > (setq smtpmail-stream-type > (pcase (cadr (split-string user-mail-address "@")) > ("gmail.com" 'starttls) > (_ 'ssl)))) > > (add-hook 'message-send-hook #'set-smtp-stream-type-by-domain) > > Thanks for the suggestion, though! Cool. But IMO a hook is rather opaque compared to that where you can see the actual method in the buffer's header, before you send it (less goof-up prone). --