mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
emacs: Explicitly set the From address when composing a new message.
Previously, underlying emacs code was setting this header. Now, we do the right thing and query the notmuch configuration for the default value here.
This commit is contained in:
parent
a3883a7e17
commit
36dcbdeff6
3 changed files with 21 additions and 13 deletions
|
@ -68,13 +68,25 @@ the user hasn't set this variable with the old or new value."
|
||||||
(match-string 2 long-string)
|
(match-string 2 long-string)
|
||||||
"unknown")))
|
"unknown")))
|
||||||
|
|
||||||
(defun notmuch-database-path ()
|
(defun notmuch-config-get (item)
|
||||||
"Return the database.path value from the notmuch configuration."
|
"Return a value from the notmuch configuration."
|
||||||
;; Trim off the trailing newline
|
;; Trim off the trailing newline
|
||||||
(substring (shell-command-to-string
|
(substring (shell-command-to-string
|
||||||
(concat notmuch-command " config get database.path"))
|
(concat notmuch-command " config get " item))
|
||||||
0 -1))
|
0 -1))
|
||||||
|
|
||||||
|
(defun notmuch-database-path ()
|
||||||
|
"Return the database.path value from the notmuch configuration."
|
||||||
|
(notmuch-config-get "database.path"))
|
||||||
|
|
||||||
|
(defun notmuch-user-name ()
|
||||||
|
"Return the user.name value from the notmuch configuration."
|
||||||
|
(notmuch-config-get "user.name"))
|
||||||
|
|
||||||
|
(defun notmuch-user-primary-email ()
|
||||||
|
"Return the user.primary_email value from the notmuch configuration."
|
||||||
|
(notmuch-config-get "user.primary_email"))
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;; XXX: This should be a generic function in emacs somewhere, not
|
;; XXX: This should be a generic function in emacs somewhere, not
|
||||||
|
|
|
@ -126,6 +126,10 @@ list."
|
||||||
(when (not (string= "" user-agent))
|
(when (not (string= "" user-agent))
|
||||||
(push (cons "User-Agent" user-agent) other-headers))))
|
(push (cons "User-Agent" user-agent) other-headers))))
|
||||||
|
|
||||||
|
(unless (assoc "From" other-headers)
|
||||||
|
(push (cons "From" (concat
|
||||||
|
(notmuch-user-name) " <" (notmuch-user-primary-email) ">")) other-headers))
|
||||||
|
|
||||||
(message-mail to subject other-headers continue
|
(message-mail to subject other-headers continue
|
||||||
switch-function yank-action send-actions)
|
switch-function yank-action send-actions)
|
||||||
(message-sort-headers)
|
(message-sort-headers)
|
||||||
|
|
12
test/emacs
12
test/emacs
|
@ -68,19 +68,11 @@ smtp_dummy_pid=$!
|
||||||
test_emacs "(setq message-send-mail-function 'message-smtpmail-send-it) (setq smtpmail-smtp-server \"localhost\") (setq smtpmail-smtp-service \"25025\") (notmuch-hello) (notmuch-mua-mail) (message-goto-to) (insert \"user@example.com\") (message-goto-subject) (insert \"Testing message sent via SMTP\") (message-goto-body) (insert \"This is a test that messages are sent via SMTP\") (message-send-and-exit)" >/dev/null 2>&1
|
test_emacs "(setq message-send-mail-function 'message-smtpmail-send-it) (setq smtpmail-smtp-server \"localhost\") (setq smtpmail-smtp-service \"25025\") (notmuch-hello) (notmuch-mua-mail) (message-goto-to) (insert \"user@example.com\") (message-goto-subject) (insert \"Testing message sent via SMTP\") (message-goto-body) (insert \"This is a test that messages are sent via SMTP\") (message-send-and-exit)" >/dev/null 2>&1
|
||||||
wait ${smtp_dummy_pid}
|
wait ${smtp_dummy_pid}
|
||||||
|
|
||||||
# XXX: Masking away the User-Agent, Date, and Message-ID makes sense,
|
output=$(sed \
|
||||||
# since these fields are inherently unpredictable. But doing the same
|
|
||||||
# thing with the From address is cheating. What should really be
|
|
||||||
# happening here is that the emacs interface should be using something
|
|
||||||
# like "notmuch compose" to construct the initial message and it
|
|
||||||
# should be getting the user's name and email address from the notmuch
|
|
||||||
# configuration file.
|
|
||||||
|
|
||||||
output=$(sed -e 's,^From: .*,From: XXX,' \
|
|
||||||
-e s',^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' \
|
-e s',^User-Agent: Notmuch/.* Emacs/.*,User-Agent: Notmuch/XXX Emacs/XXX,' \
|
||||||
-e s',^Date:.*,Date: XXX,' \
|
-e s',^Date:.*,Date: XXX,' \
|
||||||
-e s',^Message-ID: <.*>$,Message-ID: <XXX>,' < sent_message)
|
-e s',^Message-ID: <.*>$,Message-ID: <XXX>,' < sent_message)
|
||||||
test_expect_equal "$output" "From: XXX
|
test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
To: user@example.com
|
To: user@example.com
|
||||||
Subject: Testing message sent via SMTP
|
Subject: Testing message sent via SMTP
|
||||||
User-Agent: Notmuch/XXX Emacs/XXX
|
User-Agent: Notmuch/XXX Emacs/XXX
|
||||||
|
|
Loading…
Reference in a new issue