- Ada 47.2%
- C++ 46.4%
- C 5.5%
- Shell 0.6%
- Makefile 0.3%
| icons | ||
| packaging | ||
| src | ||
| third_party/litehtml | ||
| .gitignore | ||
| grumpydove.gpr | ||
| LICENSE.md | ||
| Makefile | ||
| README.md | ||
GrumpyDove
A mail client in the manner of Eudora Pro for Windows, written in Ada and Qt 6.
Mailboxes are Maildir folders under ~/Mail. It reads and writes IMAP,
sends with SMTP, keeps CardDAV address books, signs and encrypts with
OpenPGP or S/MIME (through gpgsm), checks spelling with Hunspell, and
shows HTML mail without scripts or remote styles, remote images only when
asked.
This is a beta: version 1.0.0-beta1.
Getting a package
There are no ready-made packages: you build one on the machine that will use it, which takes a few minutes. A package fits the release it was built on, so build it on the same Debian or Fedora where you will install it.
make deb and make rpm install what building needs with apt or dnf,
asking for your password through sudo.
Debian (13 and later)
sudo apt install git make
git clone https://git.keinpfusch.net/loweel/grumpydove.git
cd grumpydove
make deb
sudo apt install ./bin/grumpydove_*.deb
Fedora
sudo dnf install git make
git clone https://git.keinpfusch.net/loweel/grumpydove.git
cd grumpydove
make rpm
sudo dnf install ./bin/grumpydove-*.rpm
A package made once can be copied to other machines running the same release and installed there with the same last command.
Running
Start GrumpyDove from the applications menu, or with grumpydove in a
terminal.
Account passwords are kept in a file encrypted to your own PGP key, the one for your own address, so you need it before adding an account. If you have none, make it with PGP > Generate Key Pair... or with:
gpg --full-generate-key
Mail lives in ~/Mail, the log in ~/.local/state/GrumpyDove/grumpydove.log.
File > Import copies the mail of Thunderbird, found by itself, or of mbox files, Maildirs and Eudora folders into new mailboxes under Local > Imported, and vCard files into the Address Book; the originals stay as they are.
Junk mail is filtered with bogofilter (Tools > Options > Junk Mail, off
at first): what arrives in an account's In is scored, the score shown in
the Junk column, and junk goes to the account's junk mailbox on the
server. It learns from that mailbox and from the messages read in In, and
from Message > Junk and Not Junk; its word list is in
~/.local/share/GrumpyDove/bogofilter.
The Address Book takes nicknames and groups, as Eudora's did: a nickname written in To, Cc or Bcc becomes its addresses when the message is queued, and the entries on the Recipient List are at hand in Message > New Message To, Forward To, Redirect To and Edit > Insert Recipient.
A message may be written with styles, from the formatting toolbar or Edit
Text: fonts, sizes, colours, alignment, indents, bulleted lists, links and horizontal lines. A styled message goes out as plain text and HTML together, or as one of them (Tools > Options > Styled Text); one without styles goes as plain text, as always. A reply to a styled message quotes it as an excerpt with a bar, as Eudora did. Images never come in, neither pasted nor quoted, and none go out. The Alternate signature may have styles too.
Tools > Options holds the settings, as Eudora's did. S/MIME needs gpgsm
and your certificate imported through PGP > Keys > Import (a .p12
file); spelling needs a Hunspell dictionary, such as hunspell-it or
hunspell-en-us.
Removing
sudo apt remove grumpydove # Debian
sudo dnf remove grumpydove # Fedora
Your mail in ~/Mail and your settings in ~/.local/share/GrumpyDove
stay where they are.
Licence
GrumpyDove is licensed under the EUPL 1.2 (LICENSE.md), except:
icons/, the classic bitmaps from the released Eudora sources: BSD 3-Clause, © Computer History Museum (icons/LICENSE);third_party/litehtml: BSD 3-Clause, with gumbo under the Apache License 2.0 (theirLICENSEfiles).