<?xml version="1.0" encoding="utf-8"?>
<section id="ch_plugins">
<title>Extending Claws Mail</title>

  <section id="plugins_default">
    <title>Provided plugins</title>
    <para>
	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.
    </para><para>
	Plugins are installed in <filename class="directory"
	>$PREFIX/lib/claws-mail/plugins/</filename> and have a suffix of 
	<quote>.so</quote>. To load a plugin go to 
	<quote>Configuration/Plugins</quote> and click the 
	<quote>Load Plugin</quote> button. Select the plugin that you want and 
	click <quote>Open</quote> button.
    </para><para>
	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.
    </para>
    <variablelist>
      <varlistentry>
	<term>Bogofilter</term>
	<listitem>
	  <para>
	The Bogofilter plugin comes with two major features:
	  </para><para>
	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.
	  </para><para>
	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 
	<quote>Configuration/Preferences/Customize toolbars</quote>). Messages 
	marked as spam are optionally saved to a designated folder.
	  </para><para>
	Plugin preferences can be found in 
	<quote>Configuration/Preferences/Plugins/Bogofilter</quote>.
	  </para><para>
	Bogofilter's advantage over Spamassassin is its speed.
	  </para><para>
	Bogofilter is available from <ulink 
	url="http://bogofilter.sourceforge.net/"
	>http://bogofilter.sourceforge.net/</ulink>. 
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Dillo HTML Viewer</term>
	<listitem>
	  <para>
	Enables the viewing of HTML messages using the Dillo web browser, 
	version 0.7.0 or newer. It uses Dillo's <literal>--local</literal> 
	option by default for safe browsing. Preferences can be found in 
	<quote>/Configuration/Preferences/Plugins/Dillo Browser</quote>. 
	Dillo is available from <ulink url="http://www.dillo.org/"
	>http://www.dillo.org/</ulink>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>PGP/Core, PGP/Inline and PGP/MIME</term>
	<listitem>
	  <para>
	Handles PGP signed and/or encrypted mails. You can decrypt mails, 
	verify signatures or sign and encrypt your own mails. Uses GnuPG/GPGME,
	<ulink url="ftp://ftp.gnupg.org/gcrypt/gpgme/"
	>ftp://ftp.gnupg.org/gcrypt/gpgme/</ulink>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>SpamAssassin</term>
	<listitem>
	  <para>
	The SpamAssassin plugin comes with two major features:
	  </para><para>
	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.
	  </para><para>
	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 
	<quote>Configuration/Preferences/Customize toolbars</quote>). Messages 
	marked as spam are optionally saved to a designated folder.
	  </para><para>
	Plugin preferences can be found in 
	<quote>Configuration/Preferences/Plugins/SpamAssassin</quote>.
	  </para><para>
	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.
	  </para><para>
	SpamAssassin is available from <ulink 
	url="http://spamassassin.apache.org/"
	>http://spamassassin.apache.org/</ulink>. Version 3.1.x or higher is 
	required to use the learning feature in TCP mode.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Trayicon</term>
	<listitem>
	  <para>
	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.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
  </section>

  <section id="plugins_external">
    <title>More plugins</title>
    <para>
	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 <ulink url="http://www.claws-mail.org/plugins.php"
	>http://www.claws-mail.org/plugins.php</ulink>:
    </para>
    <variablelist>
      <varlistentry>
	<term>Acpi Notifier</term>
	<listitem>
	  <para>
	Enables new mail notification via the LEDs found on some laptops like 
	Acer, Asus, Fujitsu and IBM laptops.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>AttachWarner</term>
	<listitem>
	  <para> 
	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.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>AttRemover</term>
	<listitem>
	  <para> 
	Allows you to remove attachments from emails.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>CacheSaver</term>
	<listitem>
	  <para>
	Saves the caches every 60 seconds (or user-defined period). It helps 
	avoiding the loss of metadata if your computer (<emphasis>or 
	Claws Mail!</emphasis>) crashes. (NOTE: using this plugin can slow
	down Claws Mail.)
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Fetchinfo</term>
	<listitem>
	  <para>
	Inserts headers containing some download information, like UIDL, 
	Claws Mail' account name, POP server, user ID and retrieval time.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>GtkHtml2 Viewer</term>
	<listitem>
	  <para>
	Like Dillo, enables the viewing of HTML messages, but in a nicer way 
	(antialiased fonts).
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Mail Archiver</term>
	<listitem>
	  <para>
	Enables folders and subfolders to be archived in several different
	formats.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>mailMBOX</term>
	<listitem>
	  <para>
	Handles mailboxes in MBox format.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>NewMail</term>
	<listitem>
	  <para>
	Writes a msg header summary to a log file, (Default: 
	<filename>~/Mail/NewLog</filename>), on arrival of new mail 
	<emphasis>after</emphasis> sorting. 
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Notification</term>
	<listitem>
	  <para>
	Provides various ways to notify the user of new and unread email.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>PDF Viewer</term>
	<listitem>
	  <para>
	Provides direct rendering of PDF and PostScript attachments
	in the Claws Mail message view. It also allows browsing, zooming and 
	displaying detailed information about such attachments.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Perl</term>
	<listitem>
	  <para>
	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.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>RSSyl</term>
	<listitem>
	  <para>
	Allows you to read your favorite newsfeeds in Claws. RSS 1.0, 2.0 and 
	Atom feeds are currently supported.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>S/MIME</term>
	<listitem>
	  <para>
	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, <ulink url="ftp://ftp.gnupg.org/gcrypt/gpgme/"
	>ftp://ftp.gnupg.org/gcrypt/gpgme/</ulink>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>SpamReport</term>
	<listitem>
	  <para>
	This plugin reports spam to various places.
	Currently only <ulink url="http://spam-signal.fr"
	>spam-signal.fr</ulink> and <ulink url="http://spamcop.net"
	>spamcop.net</ulink> are supported.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>SynCE</term>
	<listitem>
	  <para>
	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.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>vCalendar</term>
	<listitem>
	  <para>
	Enables vCalendar message handling like that produced by Evolution or 
	Outlook, and Webcal subscriptions.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
    <para>
	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, 
	<literal>#claws</literal> on Freenode or IRCnet.
    </para>
  </section>
  <section id="plugins_network">
    <title>Network access from the plugins</title>
    <para>
	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, 
	<literal>http_proxy</literal>. For example, 
<literal>http_proxy=http://user:passwd@myproxy.example.com:8080</literal> 
	will tell libCurl to connect to port 8080 of the machine 
	myproxy.example.com, with the user <quote>user</quote> and password 
	<quote>passwd</quote> to connect to the Internet. 
    </para><para>
	You can either set this variable before starting Claws Mail, by 
	using for example 
	<command>http_proxy=http://user:passwd@myproxy.example.com:8080 
	claws-mail</command>, or set it in your 
	<filename>~/.bashrc</filename> file (or your shell equivalent), by 
	adding the following line<footnote><para>Other shells may have 
	diferent syntaxes, check your shell's manual page.</para></footnote>: 
<command>export http_proxy=http://user:passwd@myproxy.example.com:8080</command>
	(you'll have to reconnect to have it taken into account).
    </para>
  </section>
</section>

