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?
The following plugins are included in the Claws Mail release tarballs
- Enables the scanning of incoming mail received from a POP, IMAP or LOCAL account using bogofilter. It can optionally delete mail identified as spam or save it to a designated folder. Faster than Spamassassin.
- Bogofilter is available from http://www.bogofilter.org/
- Clam AntiVirus
- Enables the scanning of message attachments in mail received from a POP, IMAP or LOCAL account using Clam AntiVirus. It can optionally delete the mail or save it to a designated folder. Preferences can be found in '/Configuration/Preferences/Plugins/Clam AntiVirus'.
- Clam AntiVirus is available from http://clamav.sourceforge.net/
- Dillo HTML Viewer
- Enables the viewing of html messages using the Dillo web browser, version 0.7.0 or newer. It uses Dillo's --local option by default for safe browsing. Preferences can be found in '/Configuration/Preferences/Plugins/Dillo Browser'.
- Dillo is available from http://www.dillo.org/
- Handles core PGP functions and is required by the PGP/Inline and PGP/MIME plugins.
- Uses GnuPG/GPGME, ftp://ftp.gnupg.org/gcrypt/gpgme/
- Handles inline PGP signed and/or encrypted mails. You can decrypt mails, verify signatures or sign and encrypt your own mails.
- Uses GnuPG/GPGME, ftp://ftp.gnupg.org/gcrypt/gpgme/
- Handles PGP/MIME signed and/or encrypted mails. You can decrypt mails, verify signatures or sign and encrypt your own mails.
- Uses GnuPG/GPGME, ftp://ftp.gnupg.org/gcrypt/gpgme/
- Handles S/MIME crypto (signing, encrypting, verifying signatures and decrypting). See S/MIME howto to get it working.
- Enables the scanning of incoming mail received from a POP, IMAP or LOCAL account using SpamAssassin. It can optionally delete mail identified as spam or save it to a designated folder. Preferences can be found in '/Configuration/ Preferences/Plugins/SpamAssassin'. More complete checks than Bogofilter.
- SpamAssassin is available from http://spamassassin.apache.org/
- Places an icon in the notification area that indicates whether you have any new mail. A tooltip also shows the current new, unread and total number of messages
The following plugins are included in the Extra Plugins release tarballs and are also available from the Plugins page
- Enables mail notification via LEDs on some laptops.
- Allows to save outgoing email addresses to the Address Book automatically.
- This plugin lets you remove attachments from emails.
- Warns when the user composes a message mentioning an attachment in the message body without attaching any files to the message.
- Check all messages that are received from an IMAP, LOCAL or POP account for spam using Bsfilter.
- Allows message scanning for viruses using the ClamAV in daemon mode (clamd).
- Renders HTML e-mail using the WebKit library.
- Inserts headers containing some download information: UIDL, Claws Mail account name, POP server, user ID and retrieval time.
- This plugin provides GeoLocation functionality of the email sender.
- GtkHtml2 Viewer
- Enables the viewing of html messages using libgtkhtml2. Fetches attached images, distant images (depending on the preferences), can cache the images.
- Mail Archiver
- This plugin adds archiving features to Claws Mail.
- Handles mailboxes in mbox format.
- This plugin writes a msg header summary to a log file, (Default: ~/Mail/NewLog), on arrival of new mail *after* sorting.
- This plugin provides various ways to notify the user of new and unread email.
- Intended to extend the filtering possibilities of Claws Mail. It provides a Perl interface to Claws Mail's filtering mechanism, allowing the use of full Perl power in email filters.
- This plugin provides Python integration features.
- Allows you to read your favorite newsfeeds in Claws Mail. RSS 1.0, 2.0 and Atom feeds are currently supported.
- Reports spam to various places.
- TNEF parse
- This plugin enables reading application/ms-tnef attachments.
- Enables vCalendar message handling like that produced by Evolution or Outlook. It provides a personal calendar and public calendar import and export as well as Free/busy import and export to help planning meetings.
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
- 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 or pinentry-qt 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-qt 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)"
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.