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

  <section id="plugins_default">
    <title>Plugins</title>
    <para>
	Claws Mail's capabilities are extended by plugins, which are
	listed below.
    </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 the <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><para>
	Some plugins provide the same functionality as others, (for example, the 
	3 anti-Spam plugins). 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.
    </para>
    <para>
	There is a list of all plugins available at <ulink
	url="https://www.claws-mail.org/plugins.php"
	>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.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=acpinotifier"
	>www.claws-mail.org/plugin.php?plugin=acpinotifier</ulink>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>AddressKeeper</term>
	<listitem>
	  <para>
	Saves all unknown recipient addresses (<quote>To</quote>,
	<quote>Cc</quote> and/or <quote>Bcc</quote>) to a designated
	addressbook folder.
	  </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.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=attachwarner"
	>www.claws-mail.org/plugin.php?plugin=attachwarner</ulink>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>AttRemover</term>
	<listitem>
	  <para>
	Allows you to remove attachments from emails.
	  </para>
	</listitem>
      </varlistentry>
      <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/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 must be trained before it can filter messages. To train
	it you will need to mark some spam as Spam, and some legitimate 
	emails as Ham.
	  </para><para>
	Bogofilter is available from <ulink
	url="http://bogofilter.sourceforge.net/"
	>bogofilter.sourceforge.net/</ulink>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>BSFilter</term>
	<listitem>
	  <para> 
	BSFilter is a plugin that is very similar to the Bogofilter plugin
	but uses the bsfilter (<ulink url="http://bsfilter.org/index-e.html"
	>bsfilter.org/index-e.html</ulink>) bayesian spam filter as a backend.
	  </para><para>
	Like Bogofilter, you have to train it with spam and ham
	messages in order for bsfilter to start recognising spam.
	  </para><para>
	Plugin preferences can be found in 
	<quote>Configuration/Preferences/Plugins/BSFilter</quote>.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Clamd</term>
	<listitem>
	  <para>
	Allows scanning all messages received from IMAP, POP or local accounts
	using the clam daemon part of the ClamAV (AntiVirus) software (<ulink
	url="http://www.clamav.net/">www.clamav.net/</ulink>).
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Fancy</term>
	<listitem>
	  <para>
	Enables the rendering of HTML messages using the GTK port of the
	WebKit library. By default, no remote content is loaded.
	  </para><para>
	Plugin preferences can be found in 
	<quote>Configuration/Preferences/Plugins/Fancy</quote>.
	  </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>Keyword Warner</term>
	<listitem>
	  <para>
	Shows a warning when sending or queueing a message and a reference
	to one or more keywords is found in the message text.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Libravatar</term>
	<listitem>
	  <para>
	Enables the display of avatar images associated with user profiles at
	libravatar.org or the user's avatar enabled domains.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=libravatar"
	>www.claws-mail.org/plugin.php?plugin=libravatar</ulink>
	  </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 message 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.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=notification"
	>www.claws-mail.org/plugin.php?plugin=notification</ulink>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>PDF Viewer</term>
	<listitem>
	  <para>
	Allows rendering of PDF and PostScript attachments using the Poppler
	library and GhostScript external program.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=pdf_viewer"
	>www.claws-mail.org/plugin.php?plugin=pdf_viewer</ulink>
	  </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>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="https://www.gnupg.org/software/gpgme/"
	>www.gnupg.org/software/gpgme/</ulink>.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=gpg"
	>www.claws-mail.org/plugin.php?plugin=gpg</ulink>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>Python</term>
	<listitem>
	  <para>
	This plugin provides Python integration features.
	More information: <ulink
	url="http://www.claws-mail.org/plugin.php?plugin=python"
	>www.claws-mail.org/plugin.php?plugin=python</ulink>
	  </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.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=rssyl"
	>www.claws-mail.org/plugin.php?plugin=rssyl</ulink>
	  </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>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/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/"
	>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>SpamReport</term>
	<listitem>
	  <para>
	This plugin reports spam to various places.
	Currently the sites <ulink url="http://spam-signal.fr"
	>spam-signal.fr</ulink> and <ulink url="http://spamcop.net"
	>spamcop.net</ulink> are supported, and the <ulink
	url="http://lists.debian.org">Debian lists (lists.debian.org)</ulink>
	spam nomination system.
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>TNEF parse</term>
	<listitem>
	  <para>
	This plugin enables reading <literal>application/ms-tnef</literal> attachments.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=tnef_parser"
	>www.claws-mail.org/plugin.php?plugin=tnef_parser</ulink>
	  </para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term>vCalendar</term>
	<listitem>
	  <para>
	Enables vCalendar message handling like that produced by Evolution or 
	Outlook, and Webcal subscriptions.
	More information: <ulink
	url="https://www.claws-mail.org/plugin.php?plugin=vcalendar"
	>www.claws-mail.org/plugin.php?plugin=vcalendar</ulink>
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
    <para>
	If you're a developer, writing a plugin to extend Claws Mail's
	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 channel,
	<literal>#claws</literal> on <ulink url="https://libera.chat">Libera.chat</ulink>.
    </para>
  </section>

  <section id="plugins_network">
    <title>Network access from the plugins</title>
    <para>
	Some of the external plugins, for example RSSyl, vCalendar, Libravatar
	or Fancy, need Internet access for their operations (retrieving feeds in
	the case of RSSyl or vCalendar, and fetching images in the case of
	Libravatar or Fancy). 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 you can 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 id="plugin_path_config">
    <title>Plugin path configuration</title>
    <para>
    By default, when loading a plugin, its full path is saved in
    <filename>~/.claws-mail/clawsrc</filename>.
    </para><para>
    As most users have only one copy of Claws Mail installed and always
    use the same installation method, this is not a problem.
    </para><para>
    However, if you have multiple copies of Claws Mail installed
    and want to share the same configuration among them, this may not
    work, particularly when using different versions of Claws Mail.
    </para><para>
    A second installed copy will try to load the plugins installed by
    the first and, if the versions differ, the plugins will be rejected.
    </para><para>
    In order to avoid this problem you can manually edit the plugins
    section in the <filename>clawsrc</filename> file, replacing the full
    path with just the plugin file name of those you want to load
    relative to the copy of Claws Mail being run.
    </para><para>
    In so doing, each copy of Claws Mail will try to load those plugins
    from its own plugin directory, rather than a fixed location.
    </para>
  </section>

</section>

