I created ~/.mailcap and put the following line in it: 
text/html; links2 -g %s; test=test -n "$DISPLAY"

I did not change my configuration and now I cannot reproduce the behaviour however I try. 

On Mon, 23 Nov 2020 at 22:29, Tomi Ollila <tomi.ollila@iki.fi> wrote:
On Mon, Nov 23 2020, Wenlong Dai wrote:

> I've been trying to use links2 to view html part of messages.
> The problem I'm encountering is that, the part would be saved as
> /tmp/xxx/xxx.shtml and
> passed on to links2, and it seems links2 doesn't recognise the .shtml
> extension.
>
> netsurf works well with .shtml though.
>
> But being stubborn as I am, I would like to know if I can make notmuch
> output .html file instead?
> I did a bit of research on shtml, seems it's completely unnecessary in this
> case? why would notmuch choose this extension anyway?

I could not find any reference to .shtml in notmuch emacs mua sources
... nor could I find such in the "message" sources
(zgrep ... in /usr/share/emacs/{version}/lisp/gnus/*.gz)
notmuch emacs mua is using doing many of the things.

How did you configure emacs to use links2/netsurf to view html parts ?

(/usr/share/emacs/{version}/lisp/gnus/mm-view.elc.gz defines these
to be known and how those are executed:

--8<----8<----8<----8<----8<----8<----8<----8<----8<----8<--
(defvar mm-text-html-renderer-alist
  '((shr . mm-shr)
    (w3m . mm-inline-text-html-render-with-w3m)
    (w3m-standalone . mm-inline-text-html-render-with-w3m-standalone)
    (gnus-w3m . gnus-article-html)
    (links mm-inline-render-with-file
           mm-links-remove-leading-blank
           "links" "-dump" file)
    (lynx mm-inline-render-with-stdin nil
          "lynx" "-dump" "-force_html" "-stdin" "-nolist")
    (html2text mm-inline-render-with-function html2text))
  "The attributes of renderer types for text/html.")
-->8---->8---->8---->8---->8---->8---->8---->8---->8---->8--

Tomi


--
Kind Regards,
Wenlong Dai