Claws Mail notifications

Claws is currently the best option for me (I use iCloud) but it lacks a few obvious integrations with Haiku like notifications upon receiving new emails.
I’ve tried to configure it to run a command but the script never gets executed. Has anyone tried this?

Another route is the Notification plug-in which is not included in the build. Obviously it should be patched to invoke a BNotification or execute the notify command but I’m wondering why it’s not included. @3dEyes, I think you made the initial port. Could you advise?


Apparently, the notification plugin is also responsible of running a command.

I would be surprised if a built-in function relies upon an external plug-in although included in the package but judging on the behaviour you seem right.
I’ll look into the code.

It’s times like these that I wish I could program. Be’s mail system and in turn Haiku’s mail system of using attributes and the Tracker to store mail is crazy! And portable between native mail clients. I used to use Beam back in the times of BeOS. I just wish we could continue this under Haiku reliably.

1 Like

It’s never too late! :wink:


As there are other plugins able to send commands, I think that they implemented it in two steps. Necessary code is in the main program but you need a plugin to provide the command line in the right format.
Perhaps what you can do is studying how clam plugin (It’s probably the simplest for this purpose) is doing to send a command. Then you can write your own plugin.

I’ve analyzed the code and the protocol log. The problem is that iCloud, like other providers e.g. GMail, do not set the “new” flag which Claws relies on to trigger the “new email received” event.
I’ve implemented a workaround using a combination of three filters and two tags (new and notified) to call the notify command.

1 Like

I’ve tried to execute claws with Terminal to compose a new email while another instance is running but it does not behave as expected. I’m absolutely ignorant on GTK but I think this is how it is supposed to work as it is the method described in Claws docs. Am I missing anything?
Just to clarify, I have a running instance of Claws then I open another Terminal and type:

~> /boot/system/apps/Claws-mail/Claws-mail --status-full --debug
claws.c:102:Starting Claws Mail version 4.1.1
utils.c:1747:using default rc_dir /boot/home/mail/claws-mail
main.c:2364:Using control socket /boot/home/config/cache/claws-mail/f6e37ec4ebc2cad25a7371890f7fba49
main.c:2456:another Claws Mail instance is already running.

After a while this message appears:

** (process:6490): WARNING **: 18:03:32.370: socket IO timeout

** (process:6490): WARNING **: 18:03:32.370: [2023-08-29 18:03:32] Socket IO timeout.

Now the first instance freezes and I must close the second one to unlock it. This means something is happening.
Does anybody have a clue?