Difference between revisions of "Plugins"

From Claws Mail FAQ
Jump to: navigation, search
m (Reverted edit of RelorC4tbo, changed back to last version by Briot)
Line 1: Line 1:
=== What are plugins? ===
=== What are plugins? ===

Revision as of 14:10, 21 November 2007


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/
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.
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.
Saves the caches every 60 seconds (or user-defined period).
Inserts headers containing some download information: UIDL, Claws Mail account name, POP server, user ID and retrieval time.
GtkHtml2 Viewer
Enables the viewing of html messages using libgtkhtml2. Fetches attached images, distant images (depending on the preferences), can cache the images.
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.
PDF Viewer
This plugin enables the viewing of PDF and PostScript attachments using the Poppler lib and GhostScript.
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.
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.
Assists in keeping the addressbook of a Windows CE device (Pocket PC/iPAQ, Smartphone etc) in sync with Claws Mail's addressbook, with respect to email addresses.
Handles S/MIME crypto (signing, encrypting, verifying signatures and decrypting). See S/MIME howto to get it working.
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.

  1. Transport: For our configuration set this to Localhost. If ever you want to turn spam checking off, set this to Disabled.
  2. Spamd: This should be set to the IP port number that spamd is listening on, it's normally 783.
  3. Save Spam: If cleared, this tickbox tells Claws Mail to delete mails that spamassassin thinks are spam.
  4. Save Folder: If Save Spam is set, this is the folder that Claws Mail will send spam to.
  5. 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.
  6. Timeout: This is the time that sylpheed 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:

 cmd=`echo "bogofilter $@" | sed -e 's/-b//' `
 while read; do
    cat $REPLY | ssh $remote_host "$cmd"

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:

  1. Your OS automatically starts the gpg-agent daemon AND
  2. you only have the CURSES based pinentry program installed AND
  3. 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
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, better than the maildir plugin ?

The maildir plugin works well in Claws Mail. Nevertheless, if you plan to use tons of emails (i.e. X GB of mails), then the maildir plugin is not enough efficient to be usable (tested with 2GB of mails, folders with 30000 mails are long to display).

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 doing this way, your emails remains 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.