sieve vacation: write to the .lda-dupes database without generating a vacation response.
I'm using Dovecot's sieve extensions quite happily, they are very good! Thanks for all who worked on them. I have a question that maybe is appropriate for a sieve-specific discussion list, so if there is one I should post to instead, please let me know:
I've poked through the sieve vacation RFC and all the documentation I can find and I cannot figure out how to do this. It's more-or-less not the intent of sieve's vacation, so perhaps it's more of a "you can't get there from here" situation, but maybe folks here have an idea:
I am (ab)?using sieve vacation to send an automated response at all times to all senders who put me in the To line, every 90 days, which explains my lack of responsiveness and to explain who else might be better contact. (I have hundreds of emails sent to me to which I will never have time to respond, and probably should have been routed to someone else at my organization anyway.)
However, I *don't* want my regular correspondents to receive this autoreply. I'd thus like to seed the database with known individuals I'm corresponding with to pretend they've already received the autoresponder.
Since I bcc an archive address on all emails, my original thought was to detect people in the To and Cc line of outgoing emails and record them in the .lda-dupes database, as they received a vacation email. I can't figure out how to do this; there is no option on the sieve vacation directive that I can find to do something like this (i.e., I'm looking for a a "do the usual, but *don't* actually send the the email" option on the sieve vacation directive).
I do have various other solutions that help in this regard, for example, I never send a vacation email to messages that match: header :contains "In-Reply-To" "@example.org" (where example.org is my domain).
This helps, but obviously doesn't handle the situation where the correspondent doesn't reply to one of my emails, or had a stupid MUA.
Furthermore, I'd like to implement as many methods as possible for my regular corespondents to limit their receipt of the autoresponder.
Any ideas?
Thanks in advance for any help or advice you can give!
-- bkuhn
Become a Conservancy Supporter today: https://sfconservancy.org/supporter
On 19-04-16 20:01, Bradley M. Kuhn wrote:
I'm using Dovecot's sieve extensions quite happily, they are very good! Thanks for all who worked on them. I have a question that maybe is appropriate for a sieve-specific discussion list, so if there is one I should post to instead, please let me know:
I've poked through the sieve vacation RFC and all the documentation I can find and I cannot figure out how to do this. It's more-or-less not the intent of sieve's vacation, so perhaps it's more of a "you can't get there from here" situation, but maybe folks here have an idea:
I am (ab)?using sieve vacation to send an automated response at all times to all senders who put me in the To line, every 90 days, which explains my lack of responsiveness and to explain who else might be better contact. (I have hundreds of emails sent to me to which I will never have time to respond, and probably should have been routed to someone else at my organization anyway.)
However, I *don't* want my regular correspondents to receive this autoreply. I'd thus like to seed the database with known individuals I'm corresponding with to pretend they've already received the autoresponder.
You shouldn't try to force feed the dupes files, that's a hack: the dupes files has no public api so you probably shouldnt be messing with it directly. A proper solution would be to include a list of excluded addresses in the sieve script, and exempt those from the autoresponder, maybe something like this:
require "envelope"; require "variables";
set :lower "whitelist" "first@example,com second@example.com";
if envelope :matches "from" "*" { set :lower "sender" "${0}"; if string :matches "${sender}" "${whitelist}" { # do nothing, sender is on whitelist } else{ # do regular autoresponder stuff } }
The whitelist variable could be auto generated and updated from your address book or archive box parser.
I have no idea if this actually scales. You could also implement the whitelist variable using extdata (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata), or outsource the complete whitelist check to an external program (a trivial script in a real programming language) using extprograms's "execute" (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms).
Good luck!
Kind regards, Tom
Am 19.04.2016 um 20:55 schrieb Tom Hendrikx:
On 19-04-16 20:01, Bradley M. Kuhn wrote:
I'm using Dovecot's sieve extensions quite happily, they are very good! Thanks for all who worked on them. I have a question that maybe is appropriate for a sieve-specific discussion list, so if there is one I should post to instead, please let me know:
I've poked through the sieve vacation RFC and all the documentation I can find and I cannot figure out how to do this. It's more-or-less not the intent of sieve's vacation, so perhaps it's more of a "you can't get there from here" situation, but maybe folks here have an idea:
I am (ab)?using sieve vacation to send an automated response at all times to all senders who put me in the To line, every 90 days, which explains my lack of responsiveness and to explain who else might be better contact. (I have hundreds of emails sent to me to which I will never have time to respond, and probably should have been routed to someone else at my organization anyway.)
However, I *don't* want my regular correspondents to receive this autoreply. I'd thus like to seed the database with known individuals I'm corresponding with to pretend they've already received the autoresponder.
You shouldn't try to force feed the dupes files, that's a hack: the dupes files has no public api so you probably shouldnt be messing with it directly. A proper solution would be to include a list of excluded addresses in the sieve script, and exempt those from the autoresponder, maybe something like this:
require "envelope"; require "variables";
set :lower "whitelist" "first@example,com second@example.com";
if envelope :matches "from" "*" { set :lower "sender" "${0}"; if string :matches "${sender}" "${whitelist}" { # do nothing, sender is on whitelist } else{ # do regular autoresponder stuff } }
The whitelist variable could be auto generated and updated from your address book or archive box parser.
I have no idea if this actually scales. You could also implement the whitelist variable using extdata (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata), or outsource the complete whitelist check to an external program (a trivial script in a real programming language) using extprograms's "execute" (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms).
Good luck!
Kind regards, Tom
at sometime in the future
https://tools.ietf.org/html/draft-ietf-sieve-external-lists-10
may solve such cases
Best Regards MfG Robert Schetterer
-- [*] sys4 AG
http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
Op 4/19/2016 om 9:10 PM schreef Robert Schetterer:
Am 19.04.2016 um 20:55 schrieb Tom Hendrikx:
On 19-04-16 20:01, Bradley M. Kuhn wrote:
I'm using Dovecot's sieve extensions quite happily, they are very good! Thanks for all who worked on them. I have a question that maybe is appropriate for a sieve-specific discussion list, so if there is one I should post to instead, please let me know:
I've poked through the sieve vacation RFC and all the documentation I can find and I cannot figure out how to do this. It's more-or-less not the intent of sieve's vacation, so perhaps it's more of a "you can't get there from here" situation, but maybe folks here have an idea:
I am (ab)?using sieve vacation to send an automated response at all times to all senders who put me in the To line, every 90 days, which explains my lack of responsiveness and to explain who else might be better contact. (I have hundreds of emails sent to me to which I will never have time to respond, and probably should have been routed to someone else at my organization anyway.)
However, I *don't* want my regular correspondents to receive this autoreply. I'd thus like to seed the database with known individuals I'm corresponding with to pretend they've already received the autoresponder. at sometime in the future
https://tools.ietf.org/html/draft-ietf-sieve-external-lists-10
may solve such cases
It is an RFC already:
https://tools.ietf.org/html/rfc6134
It's on my list for implementation. I've recently implemented something quite similar, so it shouldn't be extremely difficult. It's just that v2.3 development will go first.
Regards,
Stephan.
Op 4/19/2016 om 8:01 PM schreef Bradley M. Kuhn:
I'm using Dovecot's sieve extensions quite happily, they are very good! Thanks for all who worked on them. I have a question that maybe is appropriate for a sieve-specific discussion list, so if there is one I should post to instead, please let me know:
I've poked through the sieve vacation RFC and all the documentation I can find and I cannot figure out how to do this. It's more-or-less not the intent of sieve's vacation, so perhaps it's more of a "you can't get there from here" situation, but maybe folks here have an idea:
I am (ab)?using sieve vacation to send an automated response at all times to all senders who put me in the To line, every 90 days, which explains my lack of responsiveness and to explain who else might be better contact. (I have hundreds of emails sent to me to which I will never have time to respond, and probably should have been routed to someone else at my organization anyway.)
However, I *don't* want my regular correspondents to receive this autoreply. I'd thus like to seed the database with known individuals I'm corresponding with to pretend they've already received the autoresponder.
Since I bcc an archive address on all emails, my original thought was to detect people in the To and Cc line of outgoing emails and record them in the .lda-dupes database, as they received a vacation email. I can't figure out how to do this; there is no option on the sieve vacation directive that I can find to do something like this (i.e., I'm looking for a a "do the usual, but *don't* actually send the the email" option on the sieve vacation directive).
I do have various other solutions that help in this regard, for example, I never send a vacation email to messages that match: header :contains "In-Reply-To" "@example.org" (where example.org is my domain).
This helps, but obviously doesn't handle the situation where the correspondent doesn't reply to one of my emails, or had a stupid MUA.
Furthermore, I'd like to implement as many methods as possible for my regular corespondents to limit their receipt of the autoresponder.
You could use the "duplicate" extension: https://tools.ietf.org/html/rfc7352
I haven't thought this through much, but on first glance it should - together with your Bcc archiving - be flexible enough allow you remember responding to certain individuals.
Just read the RFC and play with the "duplicate" test a bit and get back here if you have any questions.
Regards,
Stephan.
participants (4)
-
Bradley M. Kuhn
-
Robert Schetterer
-
Stephan Bosch
-
Tom Hendrikx