Bradley M. Kuhn
2016-Apr-19 18:01 UTC
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
Tom Hendrikx
2016-Apr-19 18:55 UTC
sieve vacation: write to the .lda-dupes database without generating a vacation response.
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 at example,com second at 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20160419/ec579816/attachment-0001.sig>
Robert Schetterer
2016-Apr-19 19:10 UTC
sieve vacation: write to the .lda-dupes database without generating a vacation response.
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 at example,com second at 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
Stephan Bosch
2016-Apr-19 22:13 UTC
sieve vacation: write to the .lda-dupes database without generating a vacation response.
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.