| Title: Read quoted-printable emails with qprint
Author: Solène
Date: 27 October 2023
Tags: openbsd linux unix
Description: In this article, you will learn about quoted-printed
encoding, and how to decode it with qprint
# Introduction
You may already have encountered emails in raw text that contained
weird characters sequences like `=E3` or `=09`, especially if you work
with patch files embedded as text in emails.
There is nothing wrong with the text itself, or the sender email
client. In fact, this shows the email client is doing the right thing
by applying the RFC 1521. Non-ASCII character should be escaped in
some way in emails.
|
| RFC 1521: MIME part one |
|
This is where qprint enters in action, it can be used to encode using
the quoted-printable, or decode such content. The software can be
installed on OpenBSD with the package named `qprint`.
|
| qprint official website |
|
I already introduced qprint in a blog post in a guide about OpenBSD
pledge.
# What does quoted-printable look like?
If you search for an email from the OpenBSD mailing list, and display
it in raw format, you may encounter this encoding. There isn't much
you can do with the file, it's hard to read and can't be used with the
program patch.
|
| Email example featuring quoted-printable characters |
|
A sample of the email looks like that:
```
From italiano-=E6=97=A5=E6=9C=AC=E8=AA=9E (=E3=81=AB=E3=81=BB=E3=82=93=
=E3=81=94) FreeDict+WikDict dictionary ver.
2022.11.18 [itajpn]:
=09
ciao //'=CA=A7ao//
=E3=81=93=E3=82=93=E3=81=AB=E3=81=A1=E3=81=AF
=09
```
If you pipe this content through the command `qprint -d`, you will
obtain a much more interesting text:
```
From italiano-日本語 (にほんご) FreeDict+WikDict dictionary ver.
2022.11.18 [itajpn]:
ciao //'ʧao//
こんにちは
```
There is little use in encoding content with qprint, but it could do it
as well.
# Conclusion
If you ever encounter this kind of encoding, now you should be able to
figure what it is, and how to read it.
Qprint may not be available on all systems, but compiling it is quite
easy, as long as you have a C compiler and make installed. |