Subject: Re: Would Citadel run on a Development Board?
Are Development Boards (like Raspberry Pi) capable of running a
Citadel server?
Yes, absolutely. Citadel is staggeringly popular on small computers. It looks like the AML-S905X runs Armbian? If so you should be able to run the Docker version of Citadel directly on the board. That's the quickest way to get started, but if containers aren't your speed you can try the Easy Install build.
It won't be staggeringly fast with its database on an SD Card, but then again, nothing will :)
Subject: Re: Easy Install - WebCit fails - libical
when I try to install citadel via easy install on an aarch64
platform, compiling of WebCit gives me a warning first:
Have you considered using the container version? It's pre-built and pre-tested and you don't need to fiddle around with a development environment.
It is supposed to match any message that us (supposedly) from a
numeric domain, like "rawr@12345678.com". I've had quite a number
of spams from such domains.
Ok, I've figured it out. Quite simple, really.
---------------------------
int substring_match = (bmstrcasestr(compare_me, ii->rules[i].compared_value) ? 1 : 0);
---------------------------
Your regex doesn't work because it isn't expecting a regex. It's only doing a case-insensitive substring comparison.
This is in server/modules/inboxrules/serv_inboxrules.c at line 640.
I suppose it wouldn't be too difficult to make it handle a regex, using regcomp() from the system libraries. But doing so would sacrifice case-insensitivity, I think? Is that an acceptable tradeoff? Or is there some method of having it both ways?
Aye, there are ways to make a regex case-insensitive, no magic code needed there. Whenever I see "Match" I always think regex, so that's probably where the confusion came from.
Another issue, the SpamAssassin X-Spam-Status field seems to never be considered during filtering.
Tue Feb 21 2023 00:08:31 EST from IGnatius T FoobarIt is supposed to match any message that us (supposedly) from a
numeric domain, like "rawr@12345678.com". I've had quite a number
of spams from such domains.
Ok, I've figured it out. Quite simple, really.
---------------------------
int substring_match = (bmstrcasestr(compare_me, ii->rules[i].compared_value) ? 1 : 0);
---------------------------
Your regex doesn't work because it isn't expecting a regex. It's only doing a case-insensitive substring comparison.
This is in server/modules/inboxrules/serv_inboxrules.c at line 640.
I suppose it wouldn't be too difficult to make it handle a regex, using regcomp() from the system libraries. But doing so would sacrifice case-insensitivity, I think? Is that an acceptable tradeoff? Or is there some method of having it both ways?
Subject: Citadel server crashes when started as docker container
I am tring to install Citadel email server using this link: https://www.citadel.org/docker.html
But when i start the container, the citserver crashes and goes on an infinite loop. Any clues will be much appreciated. Logs below:
root@pi:~# docker run -i --rm --network host --volume=/usr/local/citadel:/citadel-data citadeldotorg/citadel
ctdlvisor: Welcome to the Citadel System running in a container.
ctdlvisor: command line arguments: /usr/local/bin/ctdlvisor
ctdlvisor: /citadel-data is writable
ctdlvisor: /citadel-data/data is writable
ctdlvisor: /citadel-data/files is writable
ctdlvisor: /citadel-data/keys is writable
ctdlvisor: citserver running on pid=6
ctdlvisor: executing citserver
ctdlvisor: webcit (HTTP) running on pid=7
ctdlvisor: webcit (HTTPS) running on pid=8
ctdlvisor: executing webcit (https)
ctdlvisor: executing webcit (http)
ctdlvisor: pid=6 exited, status=134, exitcode=0
ctdlvisor: citserver crashed on signal 6
ctdlvisor: citserver running on pid=11
ctdlvisor: executing citserver
Subject: Re: Citadel server crashes when started as docker container
But when i start the container, the citserver crashes and goes on an
infinite loop. Any clues will be much appreciated. Logs below:
Please delete the container image from your server and pull the latest one.
I've just added some diagnostics that will give us a better error code.
Subject: citserver[18631]: CC[78]MSGCtdlFetchMessage(264546, 1) Failed!
The Serverlog (journalctl -l --no-pager -u citadel) or the /var/log/mail.infog shows this message:
citserver[18631]: CC[78]MSGCtdlFetchMessage(264546, 1) Failed!
What is wrong, what does it mean?
Citadel in not to configure for mail fetching. A "fetchmail" process for linux is not installed. So, i cannot interpreted this error message from the citadel server.
Any idea?
Thans an greetings, Robert
Subject: Re: citserver[18631]: CC[78]MSGCtdlFetchMessage(264546, 1) Failed!
citserver[18631]: CC[78]MSGCtdlFetchMessage(264546, 1) Failed!
What is wrong, what does it mean?
Citadel in not to configure for mail fetching. A "fetchmail" process
Well for one thing, it means you're probably using a very old version of Citadel because we don't generate log messages that look like that anymore.
How did you install Citadel and what version do you have?
CtdlFetchMessage() is a function inside the server which is responsible for loading a message from disk and into memory. It has nothing to do with the "fetchmail" utility. There could be many reasons why it might have gone looking for a message that is no longer in the database. Are you experiencing trouble or are you just browsing the logs?
Hi,
In the documentation, I read "If you configure multiple smart hosts, one will be selected at random for each message that is delivered." What happens is initial delivery fails. The same smarthost is used, or another random smarthost is used to retry ?
Kind Regards
What happens is initial delivery fails. The same smarthost is used,
or another random smarthost is used to retry ?
During an individual delivery attempt, if there are multiple smarthosts configured, it will try each one in a random order until it successfully establishes a connection to one. If there is a transient (4XX) error, the message remains in queue and will be retried later. Those later attempts will again randomize the available smarthosts, so you might get the same one first again, or you might not.
Aye, there are ways to make a regex case-insensitive, no magic code
needed there. Whenever I see "Match" I always think regex, so
that's probably where the confusion came from.
Just for you, Kitty -- commit (commeowt?) 078ba6734b4e210661340b4064d9cdca34572235 -- coming soon to a Citadel near you!
The "matches" operator now performs a regular expression match instead of a substring match. I tested it against your example regex that looks for numeric domains.
The "contains" operator still performs a substring match.
Purrfect! "Matches" should be regex while "Contains" is substring. Citadel now conforms to mail filtering standards that people are used to.
Thu Mar 09 2023 19:14:40 EST from IGnatius T FoobarAye, there are ways to make a regex case-insensitive, no magic code
needed there. Whenever I see "Match" I always think regex, so
that's probably where the confusion came from.
Just for you, Kitty -- commit (commeowt?) 078ba6734b4e210661340b4064d9cdca34572235 -- coming soon to a Citadel near you!
The "matches" operator now performs a regular expression match instead of a substring match. I tested it against your example regex that looks for numeric domains.
The "contains" operator still performs a substring match.
Documentation is a bit confusing.
on one hand it indicates Citadel drops/rejects termed SPAM as default, yet references ability to modify the behavior.
My problem is that I can’t find anything that references the ability to modify the behavior.
would someone point me in the right direction?
I use the latest easy install.
Cheers