What are plugins?
Plugins are modules loaded (or unloaded) by Claws Mail at runtime. They provide a way to extend Claws Mail with new capabilities you really need without having all of them wasting memory.
Where are plugins located?
Plugins are located in your $PREFIX/lib/claws-mail/plugins. Typical locations are /usr/lib/claws-mail/plugins if you installed a packaged plugin and /usr/local/lib/claws-mail/plugins if you're installing from source. (plugins have a suffix of '.so')
I have loaded plugin X but how can I configure it?
Plugin configuration options can be found under '/Configuration/Preferences/Plugins/' and/or '/Configuration/[Account Preferences]/Plugins'.
Some plugins have a separate interface plugin which provides the configuration pane for the X plugin. If you have loaded plugin X.so typical name for the configuration plugin will be X_gtk.so, but this is not mandatory, read plugin's documentation in case of doubt.
What plugins are currently available?
A full list is provided on the Claws Mail Plugins page
How do I configure SpamAssassin and the SpamAssassin plugin?
There are many configurations possible, this answer applies when the spamassassin daemon spamd is running on your local computer.
If you have the dependencies installed, the SpamAssassin plugin will be built automatically when building Claws Mail. When you start Claws Mail the plugin is NOT loaded or enabled. Load the plugins: Configuration|Plugins|Load Plugins, browse to your plugin directory location as described above. Load spamassassin.so. You then need to configure it in: Configuration|Preferences|Plugins|Spamassassin. There are six items to set correctly.
- Transport: For our configuration set this to Localhost. If ever you want to turn spam checking off, set this to Disabled.
- Spamd: This should be set to the IP port number that spamd is listening on, it's normally 783.
- Save Spam: If cleared, this tickbox tells Claws Mail to delete mails that spamassassin thinks are spam.
- Save Folder: If Save Spam is set, this is the folder that Claws Mail will send spam to.
- Maximum Size: Spam is usually small, so it's a waste of resources to spam check very large emails, this sets the size threshold in KBytes.
- Timeout: This is the time that Claws Mail will wait while spamd checks each message. The default of 30 seconds is OK for most machines, but slow ones may need this increased.
Now you need to test the installation. Send yourself some spam. When you receive it, it should be placed into the spam folder that you configured. To check that spamd is being called, put a tail on your sys.log (mine is in /var/log/sys.log, so tail -f /var/log/sys.log works) and see if spamd runs and what it says. If it is not running for every mail message received then check carefully both the SpamAssassin and Claws Mail settings. If it is running, but not detecting spam, then you may need to train the bayesian filter - see SpamAssassin's documentation for that.
Does the SpamAssassin plugin change the email headers?
No, it only uses the return value from SpamAssassin, (SPAM/NOT SPAM). To use header changing ability of SpamAssassin you can either configure an Action (Report as SPAM: spamassassin -r < %f), or a Filtering rule (test "!(spamc -c < %f)"), or setup fetchmail and procmail to filter emails into your Claws Mail mailbox instead of using the plugin.
How do I configure the bogofilter plugin to run on a remote server?
When you are receiving lots of messages, or reading them from several machines, it might be convenient to run bogofilter on a remote server rather than on your own machine when Claws downloads the messages. Although the bogofilter plugin currently only supports running bogofilter locally, (because it passes it the name of local files to process), it can be made to work with a remote server.
There are three steps to configuring Claws in such a context:
- Set up .procmailrc on the remote server
- See the bogofilter documentation on how to do that. Presumably, bogofilter is run, marks the message as spam or ham, and move it to a Junk folder when it is spam.
- Set up Claws filters to mark messages as spam
- When it is run, by default bogofilter will insert X-Bogosity headers in the messages. However, Claws currently ignores those. You must therefore create a pre-processing rule, 'header "X-Bogosity" match "Spam" mark_as_spam'
- Set up the bogofilter plugin to run bogofilter remotely
- When some spam or ham was incorrectly detected, you can change its status through the toolbar icon created by the bogofilter plugin. However, the latter can only run a program on the local machine. The solution is to create a shell script, and setup the preferences for bogofilter to use this script as the "Bogofilter call", (for example /usr/local/bin/remotebogofilter.sh).
An example of such a script would be:
#!/bin/sh remote_host=host.domain.com cmd=`echo "bogofilter $@" | sed -e 's/-b//' ` while read; do cat $REPLY | ssh $remote_host "$cmd" done
How do I configure gpg-agent and the PGP plugin?
Attempts to use your gpg key to sign/encrypt messages will fail with a 'Signature failed' message without even asking you for your password if:
- Your OS automatically starts the gpg-agent daemon AND
- GPGME is properly configured to use the right GnuPG version (see How do I enable GPG support in Claws Mail?) AND
- you only have the CURSES based pinentry program installed AND
- you started claws-mail from a menu or icon
(Note: my Fedora Core 4 workstation install was configured this way). The solution is to make sure that you have the pinentry-gtk, pinentry-qt or pinentry-qt4 programs installed. Claws Mail will then present the pinentry dialog box to get your GPG passphrase.
You can tell if this is working by the dialog box presented to you for your passphrase. The pinentry dialog is a little uglier than the Claws Mail version, and the window title is 'pinentry'.
One advantage of using the gpg-agent over Claws Mail password dialog is that the password caching then works with other applications using the gpg-agent (eg the command line when you specify --use-agent).
Note 2: If it still refuses to work you might want to try the following steps:
- Make sure your ~/.gnupg/gpg.conf contains the line
- Create a file ~/.gnupg/gpg-agent.conf with the following contents:
pinentry-program /usr/bin/pinentry-qt4 no-grab default-cache-ttl 1800
- Add the following line to some startup script. (In case of KDE you could use ~/.kde/env/gpgagent.sh - The filename does not matter, the contents of ~/.kde/env/ is sourced by startkde)
eval "$(gpg-agent --daemon)"
Note: If you make any changes to ~/.gnupg/gpg-agent.conf while gpg-agent is running you will need to restart gpg-agent for the changes to take effect.
I love maildir format. Is there a useful replacement in Claws Mail, which is better than the maildir plugin ?
The maildir plugin used to work well, however it is currently unmaintained, although you will probably be able to make it work with recent Claws Mail versions. The maildir plugin is not as efficient or as usable as the native MH format, (tested with 2GB of mails, folders with 30000 mails take a while to load), it lacks some important features and may well be buggy, so if you do use it, do so with caution. Also, if you plan to use it, please consider becoming the maintainer and bring it up to date. You can contact the Claws Mail Team for that.
The good solution is to use the native format of Claws Mail: the MH format. You have two ways of doing this:
- Use a local account in MH format: you use the filters of Claws Mail to drop the mails directly on your disk in MH format. Then searching, indexing is very, very fast.
- Use an IMAP account: if choosing this way, your emails remain on the IMAP server BUT, when displayed, your mails are downloaded and stored in MH format on your disk too. They are dropped in ~/.claws-mail/imapcache/ and are synchronized with the server (see Synchronize folder in File menu).
In the two cases, Claws Mail uses the MH format and you can browse your emails with an alternative mail client able to read MH.