mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
notmuch clon
27b25e45dc
Enigmail generates a "legacy-display" part when it sends encrypted mail with a protected Subject: header. This part is intended to display the Subject for mail user agents that are capable of decryption, but do not know how to deal with embedded protected headers. This part is the first child of a two-part multipart/mixed cryptographic payload within a cryptographic envelope that includes encryption (that is, it is not just a cleartext signed message). It uses Content-Type: text/rfc822-headers. That is: A └┬╴multipart/encrypted B ├─╴application/pgp-encrypted C └┬╴application/octet-stream * ╤ <decryption> D └┬╴multipart/mixed; protected-headers=v1 (cryptographic payload) E ├─╴text/rfc822-headers; protected-headers=v1 (legacy-display part) F └─╴… (actual message body) In discussions with jrollins, i've come to the conclusion that a legacy-display part should be stripped entirely from "notmuch show" and "notmuch reply" now that these tools can understand and interpret protected headers. You can tell when a message part is a protected header part this way: * is the payload (D) multipart/mixed with exactly two children? * is its first child (E) Content-Type: text/rfc822-headers? * does the first child (E) have the property protected-headers=v1? * do all the headers in the body of the first child (E) match the protected headers in the payload part (D) itself? If this is the case, and we already know how to deal with the protected header, then there is no reason to try to render the legacy-display part itself for the user. Furthermore, when indexing, if we are indexing properly, we should avoid indexing the text in E as part of the message body. 'notmuch reply' is an interesting case: the standard use of 'notmuch reply' will end up omitting all mention of protected Subject:. The right fix is for the replying MUA to be able to protect its headers, and for it to set them appropriately based on headers found in the original message. If a replying MUA is unable to protect headers, but still wants the user to be able to see the original header, a replying MUA that notices that the original message's subject differs from the proposed reply subject may choose to include the original's subject in the quoted/attributed text. (this would be a stopgap measure; it's not even clear that there is user demand for it) This test suite change indicates what we want to happen for this case (the tests are currently broken), and includes three additional TODO suggestions of subtle cases for anyone who wants to flesh out the test suite even further. (i believe all these cases should be already fixed by the rest of this series, but haven't had time to write the tests for the unusual cases) Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
||
---|---|---|
bindings | ||
compat | ||
completion | ||
contrib | ||
debian | ||
devel | ||
doc | ||
emacs | ||
lib | ||
packaging | ||
parse-time-string | ||
performance-test | ||
test | ||
util | ||
vim | ||
.dir-locals.el | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
AUTHORS | ||
command-line-arguments.c | ||
command-line-arguments.h | ||
configure | ||
COPYING | ||
COPYING-GPL-3 | ||
debugger.c | ||
gmime-filter-reply.c | ||
gmime-filter-reply.h | ||
hooks.c | ||
INSTALL | ||
Makefile | ||
Makefile.global | ||
Makefile.local | ||
mime-node.c | ||
NEWS | ||
notmuch-client.h | ||
notmuch-compact.c | ||
notmuch-config.c | ||
notmuch-count.c | ||
notmuch-dump.c | ||
notmuch-insert.c | ||
notmuch-new.c | ||
notmuch-reindex.c | ||
notmuch-reply.c | ||
notmuch-restore.c | ||
notmuch-search.c | ||
notmuch-setup.c | ||
notmuch-show.c | ||
notmuch-tag.c | ||
notmuch-time.c | ||
notmuch.c | ||
query-string.c | ||
README | ||
README.rst | ||
sprinter-json.c | ||
sprinter-sexp.c | ||
sprinter-text.c | ||
sprinter.h | ||
status.c | ||
tag-util.c | ||
tag-util.h | ||
version |
Notmuch - thread-based email index, search and tagging. Notmuch is a system for indexing, searching, reading, and tagging large collections of email messages in maildir or mh format. It uses the Xapian library to provide fast, full-text search with a convenient search syntax. Notmuch is free software, released under the GNU General Public License version 3 (or later). Building notmuch ---------------- See the INSTALL file for notes on compiling and installing notmuch. Running notmuch --------------- After installing notmuch, start by running "notmuch setup" which will interactively prompt for configuration information such as your name, email address, and the directory which contains your mail archive to be indexed. You can change any answers later by running "notmuch setup" again or by editing the .notmuch-config file in your home directory. With notmuch configured you should next run "notmuch new" which will index all of your existing mail. This can take a long time, (several hours) if you have a lot of email, (hundreds of thousands of files). When new mail is delivered to your mail archive in the future, you will want to run "notmuch new" again. These runs will be much faster as they will only index new messages. Finally, you can prove to yourself that things are working by running some command-line searches such as "notmuch search from:someone@example.com" or "notmuch search subject:topic". See "notmuch help search-terms" for more details on the available search syntax. The command-line search output is not expected to be particularly friendly for day-to-day usage. Instead, it is expected that you will use an email interface that builds on the notmuch command-line tool or the libnotmuch library. Notmuch installs a full-featured email interface for use within emacs. To use this, first add the following line to your .emacs file: (autoload 'notmuch "notmuch" "Notmuch mail" t) Then, either run "emacs -f notmuch" or execute the command "M-x notmuch" from within a running emacs. If you're interested in a non-emacs-based interface to notmuch, then please join the notmuch community. Various other interfaces are already in progress, (an interface within vim, a curses interface, graphical interfaces based on evolution, and various web-based interfaces). The authors of these interfaces would love further testing or contribution. See contact information below. Contacting users and developers ------------------------------- The website for Notmuch is: https://notmuchmail.org The mailing list address for the notmuch community is: notmuch@notmuchmail.org We welcome any sort of questions, comments, kudos, or code there. Subscription is not required, (but if you do subscribe you'll avoid any delay due to moderation). See the website for subscription information. There is also an IRC channel dedicated to talk about using and developing notmuch: IRC server: irc.freenode.net Channel: #notmuch