# Extending Claws Mail

## Provided plugins

Claws Mail' capabilities are extended by plugins. It comes with the plugins listed below included, all of which are built automatically if the required libraries are present.

Plugins are installed in `$PREFIX/lib/claws-mail/plugins/` and have a suffix of .so. To load a plugin go to Configuration/Plugins and click the Load Plugin button. Select the plugin that you want and click Open button.

If you don't find the plugin you're looking for, it is possible that your Operating System distribution provides it in a separate package. In this case, search for the plugin in your package manager.

Some plugins provide the same functionality as others, (for example, the three HTML message viewers). In this case you will have to choose which one to load, as Claws Mail will refuse to load more than one of the same type.

Bogofilter

  The Bogofilter plugin comes with two major features:

  The ability to scan 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. Mail scanning can be turned off.

  The ability for users to teach Bogofilter to recognise spam or ham. You can train Bogofilter by marking messages as spam or ham from the Message List contextual menu, or using the relevant toolbar button in the main window or the message window (see Configuration/Preferences/Toolbars). Messages marked as spam are optionally saved to a designated folder.

  Plugin preferences can be found in Configuration/Preferences/Plugins/Bogofilter.

  Bogofilter's advantage over Spamassassin is its speed.

  Bogofilter is available from http://bogofilter.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/.

PGP/Core, PGP/Inline and PGP/MIME

  Handles 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/.

S/MIME

  Handles S/MIME signed and/or encrypted mails. You can decrypt mails, verify signatures or sign and encrypt your own mails. Uses GnuPG/GPGME and GpgSM, ftp://ftp.gnupg.org/gcrypt/gpgme/.

SpamAssassin

  The SpamAssassin plugin comes with two major features:

  The ability to scan 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. Mail scanning can be turned off, which is useful if your email is scanned on your server.

  The ability for users to teach SpamAssassin to recognise spam or ham. You can train SpamAssassin by marking messages as spam or ham from the Message List contextual menu, or using the relevant toolbar button in the main window or the message window (see Configuration/Preferences/Toolbars). Messages marked as spam are optionally saved to a designated folder.

  Plugin preferences can be found in Configuration/Preferences/Plugins/SpamAssassin.

  SpamAssassin's advantage over Bogofilter is that it's not only a bayesian filter, but it also performs various local and network tests to determine spaminess.

  SpamAssassin is available from http://spamassassin.apache.org/. Version 3.1.x or higher is required to use the learning feature in TCP mode.

Trayicon

  Places an icon in the system tray that indicates whether you have any new mail. A tooltip also shows the current new, unread and total number of messages.

## More plugins

Other plugins have been written too, which are available as separate downloads. At the time of this writing, there are a number of plugins available at http://www.claws-mail.org/plugins.php:

Acpi Notifier

  Enables new mail notification via the LEDs found on some laptops like Acer, Asus, Fujitsu and IBM laptops. More information: www.claws-mail.org/plugin.php?plugin=acpinotifier

AttachWarner

  Reminds you about possibly forgotten attachments. Checks for common expressions found when attaching a file and warns you if no attachment was added to the mail you're sending. More information: www.claws-mail.org/plugin.php?plugin=attachwarner

AttRemover

  Allows you to remove attachments from emails.

BSFilter

  BSFilter is a plugin that is very similar to the Bogofilter plugin but uses the bsfilter (bsfilter.org/index-e.html) bayesian spam filter as a backend.

  Like Bogofilter, you have to train it with spam and ham messages in order for bsfilter to start recognising spam.

  Plugin preferences can be found in Configuration/Preferences/Plugins/BSFilter.

CacheSaver

  Saves the caches every 60 seconds (or user-defined period). It helps avoiding the loss of metadata if your computer (or Claws Mail!) crashes. (NOTE: using this plugin can slow down Claws Mail.)

Fancy

  Enables the display of HTML messages using the GTK+ port of the WebKit library.

Fetchinfo

  Inserts headers containing some download information, like UIDL, Claws Mail' account name, POP server, user ID and retrieval time.

GtkHtml2 Viewer

  Like Dillo, enables the viewing of HTML messages, but in a nicer way (antialiased fonts). More information: www.claws-mail.org/plugin.php?plugin=gtkhtml2

Mail Archiver

  Enables folders and subfolders to be archived in several different formats.

mailMBOX

  Handles mailboxes in MBox format.

NewMail

  Writes a msg header summary to a log file, (Default: `~/Mail/NewLog`), on arrival of new mail after sorting.

Notification

  Provides various ways to notify the user of new and unread email. More information: www.claws-mail.org/plugin.php?plugin=notification

Perl

  Intended to extend the filtering possibilities of Claws Mail. It provides a Perl interface to Claws Mail' filtering mechanism, allowing the use of full Perl power in email filters.

Python

  This plugin provides Python integration features. More information: www.claws-mail.org/plugin.php?plugin=python

RSSyl

  Allows you to read your favorite newsfeeds in Claws. RSS 1.0, 2.0 and Atom feeds are currently supported. More information: www.claws-mail.org/plugin.php?plugin=rssyl

SpamReport

  This plugin reports spam to various places. Currently the sites spam-signal.fr and spamcop.net are supported, and the Debian lists (lists.debian.org) spam nomination system.

SynCE

  Assists in keeping the address book of a Windows CE device (Pocket PC, iPAQ, Smartphone, etc.) in sync with Claws Mail' address book, with respect to email addresses.

TNEF parse

  This plugin enables reading `application/ms-tnef attachments`. More information: www.claws-mail.org/plugin.php?plugin=tnef_parser

vCalendar

  Enables vCalendar message handling like that produced by Evolution or Outlook, and Webcal subscriptions. More information: www.claws-mail.org/plugin.php?plugin=vcalendar

If you're a developer, writing a plugin to extend Claws Mail' capabilities is probably the best and easiest solution. We will provide hosting to your code, and will be glad to answer your questions in the mailing-list or on the IRC channels, `#claws` on Freenode or IRCnet.

## Network access from the plugins

Some of the external plugins, for example RSSyl, vCalendar or GtkHtml Viewer, need Internet access for their operations (retrieving feeds in the case of RSSyl or vCalendar, and fetching images in the case of GtkHtml Viewer). These plugins use the Curl library. Hence, if your Internet access is restricted by a proxy, you will need to tell libCurl to use this proxy. This is done by setting an environment variable, `http_proxy`. For example, `http_proxy=http://user:passwd@myproxy.example.com:8080` will tell libCurl to connect to port 8080 of the machine myproxy.example.com, with the user user and password passwd to connect to the Internet.

You can either set this variable before starting Claws Mail, by using for example `http_proxy=http://user:passwd@myproxy.example.com:8080 claws-mail`, or set it in your `~/.bashrc` file (or your shell equivalent), by adding the following line Other shells may have diferent syntaxes, check your shell's manual page.: `export http_proxy=http://user:passwd@myproxy.example.com:8080` (you'll have to reconnect to have it taken into account).