Using Claws Mail with other programs

From Claws Mail FAQ
Revision as of 12:09, 11 October 2021 by Gour (talk | contribs) (add description of integration between Claws-mail and Taskwarrior)
Jump to navigationJump to search

How can I use Claws Mail with bogofilter?

The simplest method is to use the Bogofilter plugin, see the Plugins FAQ Page for further information. If you use that plugin, the following will not be needed

Filtering/Actions method

First of all, make sure you have trained bogofilter; for different training methods, see Method 4 is recommended, but requires a large number of ham and spam messages.

Add a new filtering rule: you need a filtering condition which runs bogofilter on incoming messages; and an action that has to be performed if the message was recognised as spam. Go to the Filtering Configuration dialog, and type the following in the condition entry field:

test "bogofilter -u < %F"

Note 1: this assumes that bogofilter is in your path!
Note 2: the -u parameter of bogofilter registers the message automatically as either spam or ham.

Next add an action in the Action field. The best way is to use the Define... button next to the field. As an example, if you wanted to move a spam messages to a directory called Spam, then the final action, put in the field, could look like this:

move "#mh/Mailbox/Spam"

After having added the filtering rule you probably want to create two Claws Mail Actions: one for marking messages as spam, and one for marking messages as ham. These actions can be used to correct bogofilter and/or to train it with additional messages. For example, if the above filtering rule did not detect a spam message correctly, delivering it to your inbox, you can manually correct this by invoking a "Mark As Spam" action. As an added bonus, Actions are automatically added to the main menu (under Tools|Actions), and can also be added to the main toolbar.

Open the Actions dialog (Configuration | Actions...). In the Menu name field, enter the following:

Mark As Spam

This is just the text as it would appear in the Tools|Actions submenu.

The accompanying command line for Mark As Spam should be:

bogofilter -Ns -B %F

(Don't forget to use the Add button!)

Likewise, the same thing you should do for marking messages as ham. Select "New" in the Current actions list, and enter the following in the Menu name:

Mark As Ham

The command line for this action should be:

bogofilter -Sn -B %F

And add the action by clicking the Add button.

This gives you a basic setup for bogofilter and Claws Mail.

How can I use Claws Mail with Popfile?

You can reclass messages received trough a Popfile filter with a header link or a button in Claws Mail. Popfile lives @

First read the Popfile documentation on how to set up the mail client to use Popfile.

You have 2 options to reclass received messages: a simple one (header link) and a difficult one (toolbar button).

1) Simple method

  • Open the Popfile control center, go to the "Buckets" tab, and make sure ALL buckets have the X-POPFile-Link Header turned on.
  • Open Claws Mail preferences window, go to Message view -> Text options.
  • Edit the header display options, in the "Displayed header configuration" dialog add X-POPFile-Link to the displayed headers.
  • All messages received via Popfile will have a header link (just above the message body) called X-POPFile-Link, something like this: X-POPFile-Link: - you can click on it and Claws will open the link with the browser you set up in preferences.

2) difficult method

You will need 3 things:

  • a bash script
  • a Claws Mail action
  • change Popfile configuration a bit.

The bash script:

url=`cat $1 | grep -e X-POPFile-Link:.* -o|grep http.* -o`
firefox $url

Save it as /some/path/
Change firefox to another browser executable if needed.

The action:
/some/path/ "%f"
You can set up a toolbar buttor for the action later

Popfile configuration
Go to, and make sure the X-POPFile-Link Header option is turned ON.
Your popfile URL might be different.

You will be able to reclass messages that were received with the above option turned ON.

How can I use Claws Mail with SpamAssassin?

The simplest method is to use the SpamAssassin plugin, see the Plugins FAQ Page for further information.

Filtering/Actions method

To train spamassassin in Claws Mail (>=1.9.6):
Menu > Configuration > Actions
In 'Menu Name' add "Mark as Spam"
In 'Command line' add "sa-learn --spam %F"
click the Add button
Menu > Configuration > Actions
In 'Menu Name' add "Mark as Ham"
In 'Command line' add "sa-learn --ham %F"
click the Add button
then select a message, Menu Tools > Actions will have the new actions to mark your email as Spam/Ham. Once you click one of the buttons spamassassin will process your request - this takes time so be patient and dont click on the 'cancel' button.

If you want to have the mail learned on a remote mail server, that's possible with a 'Command line' like this:
ssh host.domain sa-learn --ham < %f
It works best if you have already setup ssh to use keys for authentication.

How can I use Claws Mail with Mozilla? (not Firefox)

Go to Menu > Configuration > Preferences > Message View > External Programs

and write

mozilla -remote "openurl(%s,new-window)"

into the "Web Browser" field.

How can I use Claws Mail with Firefox?

Go to Menu > Configuration > Preferences > Message View > External Programs

and write

firefox --new-tab "%s"

into the "Web Browser" field. See Firefox's Command line arguments for more information.

See also: How can I tell my browser/newsclient/other program to use Claws Mail as e-mail program?

How can I use Claws Mail with mairix?

In addition to the quicksearch, that allows filtering out messages in folders recursively, you can use mairix in Claws Mail in order to perform message searches across a wide range of folders.

To illustrate this topic, we'll detail the necessary steps to make a global search in a MH config (in our example, ~/Mail).

- install mairix from or get it from your packages repository. mairix is a program for indexing and searching email messages stored in Maildir, MH or mbox folders. We recommend to avoid using version 0.20 (0.17 to 0.19 are fine).

- create a folder in Claws Mail where the search results will be stored in (in our example: ~/Mail/Search).

- create a mairix config file (~/.mairixrc for instance):


in that example, the base directory is ~/Mail, the search will be performed across all folders and sub-folders (mh=*...) in the base directory. Search will omit drafts, queue, trash, Junk and Search folders located in the base directory, and will place results into the Search folder. If you're in the search folder prior to starting the search, you'll have to select click "View/Update summary" to refresh the messages list.

See `man mairix` for more information about the mairix configuration file.

- add an action in Claws Mail to start the mairix search:

> ~/.claws-mail/tools/ ~/.mairixrc

make sure that you've installed from the Tools pages ( into ~/.claws-mail/tools or wherever you want, provided that you set the correct path in the action text.

Now call the action. You'll be asked for the text to search for. Search results - symlinks to the existing message files, will be placed into the target folder, making it like a virtual folder. Removing messages from that folder will NOT remove the original message files. The text to search for is an expression to pass to mairix. See `man mairix` for all search patterns.

You can create as many mairix config files as you want (be sure that you set a different database value in each of them), then create the corresponding actions that call with the config filename in parameter.

How can I use Claws Mail with httppc?

If you need to use Claws Mail behind an HTTP proxy that supports "CONNECT" method (RFC 2616), you may want to use httppc library: it's a simple and fast way to achieve this goal.

An step-by-step example of how to set up version 0.8.5 follows.

First we need to get the source archive from the SourceForge repository and unpack it:

wget ""
tar xzf httppc-0.8.5.tar.gz
cd httppc-0.8.5

Then we run the configure script:

sh ./configure

Note: By default, the package's files are installed in `/usr/local/bin', `/usr/local/man', etc. If you wish to specify another location for these files, you can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. Please refer to the INSTALL file for further information.

Finally we build and install it:

make check #optional
make install

Note: You may encounter an error while compiling driver.c, stating

driver.c: In function 'getaddrinfo':
driver.c:557:13: error: 'EAI_NODATA' undeclared

In this case, just insert the "-D_GNU_SOURCE" option in the Makefile, for instance in the "DEFS" line:


We now need to edit the configuration a bit to make it fully functional:

  • First, the proxed shell script (located at /usr/local/bin/proxed by default). Define at least the $HTTP_PROXY variable.
  • Then the httppc configuration file (located at /usr/local/etc/httppcrc by default). Define at least the proxy parameter, and most probably the ldns parameter if you have a local DNS server behind the HTTP proxy as well.

We should be all set. The script should be in our path and can be launched with

proxed claws-mail

Tip: We can add a shell alias to launch typing less (example for ~/.bashrc):

alias claws-mail="proxed claws-mail &"

How to integrate Claws-mail with Taskwarrior?

Here is desciption how to integrate Claws-mail with Taskwarrior.

System Requirements

You need Claws-mail and Taskwarrior installed, then Tasklib package as well as Taskopen.

Integration scipt

In order to integrate Claws-mail & Taskwarrior I modified the mutt2task script from task-attach project and you have to put it somewhere in your PATH.

I named it as claws2task.

#!/usr/bin/env python3

Creates a new task with the given message's filename as annotation attachment.

import email
import sys

from tasklib import TaskWarrior, Task

def get_task_description(message):
    description = 'claws: "{}"'.format(message['subject'])
    return description 

def main():
        file_name = sys.argv[1]
        fp = open(file_name)
        message = email.message_from_file(fp)
        desc = get_task_description(message)
        tw = TaskWarrior(data_location='~/task', create=False)
        tw.overrides['gc'] = '0'
        task = Task(tw, description=desc, tags=['inbox','email'])
    except Exception as e:

if __name__ == "__main__":

Tagging Messages

task = Task(tw, description=desc, tags=['inbox','email'])

I want that every task created from within Claws-mail gets two tags: +inbox and +email and get annotated with the link to open it from Taskwarrior. Moreover, task's descriptions is message's Subject prepended with claws:, so you're free to adjust it according to Your preferences.

Adding User Action to Claws-mail

Now one needs to add the folowing action as shell command to Claws-mail which I put on the Toolbar and named Taskwarrior:

/path/to/the/script/claws2task %f

Now clicking on certain mail or news (NNTP) message should create a new Taskwarrior task.

MIME Setup

In order to be able to (task)open the message in Claws-mail, we need to configure it for xdg-open.

If you query some mail/news message with e.g.

xdg-mime query filetype ~/.claws-mail/imapcache/some/mail/account/INBOX/12345

you should get:

message/rfc822 for IMAP and message/news for NNTP messages.

Now, when i was checking default association on my system with:

xdg-mime query default message/rfc822

it was tied to Evolution, while message/news was not tied to anything.

System Integration

Create the following file:

[Desktop Entry]
Name=Claws-mail Select Handler
Comment=Claws-mail integration with Taskwarrior
Exec=claws-mail --select %u

as e.g. ~/.local/share/applications/claws-select.desktop and then configure new filetype with:

xdg-mime default claws-select.desktop message/rfc822
xdg-mime default claws-select.desktop message/news

Check that everything is OK with:

$ env XDG_UTILS_DEBUG_LEVEL=10  xdg-mime query default message/rfc822
Checking /home/gour/.config/mimeapps.list


Now you can also try whether you can open mail/news messages with xdg-open in your terminal.

Finally, after you create task #xyz within Claws-mail, you should be able to see it within Taskwarrior --- filter with e.g. +inbox +email and then you should be able to issue:

$ task open #xyz

and you should see it it higlighted in Claws-mail.