adds post on mutt multipart messages, and fixes summary-only RSS feeds

This commit is contained in:
Wxcafé (Clément Hertling) 2018-07-04 00:25:24 +02:00
parent 1c4c9efa87
commit 6a65df88c8
No known key found for this signature in database
GPG Key ID: 11E99643DEE9E336
2 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,83 @@
Title: (Neo)mutt fuckery with multipart messages
Date: 2018-07-03T23:40+02:00
Author: Wxcafé
Category:
Slug: content/(neo)mutt_fuckery_with_multipart_messages
I've been using Mutt, and then Neomutt, as an email client on my laptops for
a while (I generally use Evolution on my desktop, because it runs on GNOME,
while the laptops run on i3wm). Today while talking with colleagues who also use
a TUI, text-only email client, we realized we had one shared pain about this,
which was receiving multipart emails where the text/plain part was either the
HTML source of the text/html part or a single line saying "This email has no
plain text version, refer to the HTML version" (If you don't know how multipart
emails and MIME work, [wikipedia has a good
primer](https://en.wikipedia.org/wiki/MIME#Multipart_messages)).
We thought it might be fun as retaliation to send multipart emails, with the
text/html part saying "This email has no HTML version, please refer to the plain
text". An hour and a few curses at mutt's documentation later, I'd come up with
this solution:
First, create the HTML document:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css"> body { margin : 40px auto;
max-width : 650px;
line-height : 1.6;
font-size : 18px;
color : #444;
padding : 0 10px
}
h1,h2,h3 { line-height : 1.2
}
</style>
</head>
<body>
<h1>
Sorry, this email is not available in HTML<br/>
Please refer to the plain text version!
</h1>
</body>
</html>
```
and put it in `~/.mutt/multipart.html`
Then we simply need to add to our .muttrc this line:
```
send-hook ~A "push 'a~/.mutt/multipart.html<enter>'\CDkTT&"
```
This is a send-hook that will match any outgoing email, add the html file as an
attachement, then tag it as inline, tag both parts of the message and merge them
into a multipart/alternative file (The `&` command only exists in ~recent (May
2, 2018) versions of neomutt).
You can now do anything you'd normally do with the email, add further
attachements, PGP sign it (or not), add ccs, whatever. When you send the email,
it will be sent as a multipart/alternative message with the HTML document we set
earlier as the text/html part and your message as the text/plain part, and
basically every graphical client will only display the HTML version.
---
### Sample fuckery:
![example of the same email message opened in mutt and
Evolution](https://pub.wxcafe.net/img/mutt-fuckery.png)
---
P.S.: I know I shouldn't have to say this but please don't actually use this to
annoy people who use graphical email clients. We're the weird ones, basically
everyone uses a graphical email client, and they're clearly the standard now,
plus it's clearly a dick move to do this. Please refrain. Thank you for your
understanding ❤️

View File

@ -28,6 +28,7 @@ CATEGORY_FEED_ATOM = None
AUTHOR_FEED_ATOM = None AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None AUTHOR_FEED_RSS = None
FEED_ALL_ATOM = None FEED_ALL_ATOM = None
RSS_FEED_SUMMARY_ONLY = False
MARKDOWN = { MARKDOWN = {
'extension_configs': { 'extension_configs': {