I've been a member on StackOverflow for a while, but this is my first post to ServerFault, so if I'm doing something wrong in this post, feel free to call me out on it.

TL;DR: Using Cyrus and sendmail. We have emails like firstname.lastname@ourdomain but sieveInstall -i <user> <compiled_sieve> only permits alphanumerics. I do not know how to work around this.

My company uses Cyrus (v2.3.16-Fedora-RPM-2.3.16-6.9.amzn1) and sendmail on an AWS EC2 Linux server.

Historically, we've used firstname@ourdomain email addresses because we were very small. However, we're growing and have started using firstname.lastname@ourdomain for all new employees.

To do server-side mail filtering, we use sieves. We take a list of filter rules the user has defined, create a sieve from those rules, compile it using sievec, and install it using sieveInstall -i <user> <compiled_sieve>. This is all automated by Perl scripts.

The issue I'm running into is that sieveInstall does not work with emails that have non-alphanumeric characters in them (such as a dot), so newer employees are not able to use our server-side filtering because of this. This worked beautifully for our older, firstname@ourdomain emails.

Documentation on sieveInstall seems non-existent and there is no man page for it.

Does anyone know how I might accomplish this?

I've also briefly looked into sieveshell but for some reason it cannot connect to localhost, maybe because the port isn't open.

  • sieveInstall doesn't appear to be part of the upstream Cyrus distribution at all! Do you know where it came from? You didn't mention which distribution or package you're working from. Also, Cyrus version would be very helpful, because there have been a lot of changes to handling of dots in names over the years. – Bron Gondwana Dec 28 '16 at 22:56
  • @BronGondwana I feel like an idiot. I'm glad you mentioned that about sieveInstall not being part of Cyrus, because it let me do some more digging. Turns out it's actually a C++ program someone else here wrote a long time ago, which explains why no documentation on it can be found. I will delete this post or mark it closed. Thank you! – dcdruck Dec 29 '16 at 19:05

I figured this out. It turns out there's a very good reason why I couldn't find anything about sieveInstall online: it was written by someone else here internally a long time ago and just not documented anywhere.

I updated the C++ code to handle these alternate address types and all is good now. Sorry to create this post and waste your time! Feel free to delete the post altogether.

  • hah, awesome. I assume it's not general enough to worth pushing upstream? – Bron Gondwana Dec 30 '16 at 22:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.