Hello List, i have a problem when using sieve-plugin sieve_extprograms. I use dovecot 2.2.18 and bundled pigeonhole 0.4.6 (Ubuntu 14.04.3 LTS) i have enabled sieve_extprograms and vnd.dovecot.filter to send mail to user-defined script and get changed content back. My script previously was used with procmail and is working fine. Using same script with vnd.dovecot.filter leads to odd behavior. I already found out the problem itself: By sending Mailcontent to filter-programm it seems that sieve/sieve_extprograms is adding additional linebreaks to every line of complete mail. Please see this image to clarify: http://r31i.imgup.net/header8d56.jpg?l=de Every lineending got additional windows-lineendings, which leads to problems with processing scripts. Piping mails by procmail to same script is working without problems, because this mails are recieved "clean" without the "^M". this is part of dovecot.conf: plugin { sieve = ~/.dovecot.sieve sieve_plugins = sieve_extprograms sieve_extensions = +vnd.dovecot.pipe +vnd.dovecot.filter +vnd.dovecot.execute sieve_pipe_bin_dir = /usr/local/bin/ sieve_filter_bin_dir = /usr/local/bin/ } this is part of userscript ~/.dovecot.sieve: require ["fileinto", "vacation", "variables", "envelope", "imap4flags", "vnd.dovecot.filter", "subaddress"]; if address "to" "test2 at example.com" { filter "my-script"; } my-script currently just recieves and saves raw-data, so i could find difference between sieve and procmail mails. What to do here? Is this a kind of bug of sieve/sieve_extprograms or i have to use additional parameters? Thanks, Hajo
Op 8-9-2015 om 13:10 schreef Hajo Locke:> Hello List, > > i have a problem when using sieve-plugin sieve_extprograms. I use > dovecot 2.2.18 and bundled pigeonhole 0.4.6 (Ubuntu 14.04.3 LTS) > > i have enabled sieve_extprograms and vnd.dovecot.filter to send mail > to user-defined script and get changed content back. > My script previously was used with procmail and is working fine. > Using same script with vnd.dovecot.filter leads to odd behavior. > I already found out the problem itself: > By sending Mailcontent to filter-programm it seems that > sieve/sieve_extprograms is adding additional linebreaks to every line > of complete mail. > Please see this image to clarify: > http://r31i.imgup.net/header8d56.jpg?l=de > Every lineending got additional windows-lineendings, which leads to > problems with processing scripts. > Piping mails by procmail to same script is working without problems, > because this mails are recieved "clean" without the "^M".Well, the specified format for an internet message like e-mail has CRLF line endings everywhere. That's why this happens now: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/file/5df1b6d72ec2/src/plugins/sieve-extprograms/sieve-extprograms-common.c#l604 But maybe that is not such a good idea in a UNIX environment. I think I can just make it configurable. Regards, Stephan.
Hello, Am 09.09.2015 um 13:30 schrieb Stephan Bosch:> > > Op 9-9-2015 om 12:37 schreef Hajo Locke: >> Hello, >> >> >> Am 09.09.2015 um 11:26 schrieb Stephan Bosch: >>> >>> >>> Op 8-9-2015 om 13:10 schreef Hajo Locke: >>>> Hello List, >>>> >>>> i have a problem when using sieve-plugin sieve_extprograms. I use >>>> dovecot 2.2.18 and bundled pigeonhole 0.4.6 (Ubuntu 14.04.3 LTS) >>>> >>>> i have enabled sieve_extprograms and vnd.dovecot.filter to send >>>> mail to user-defined script and get changed content back. >>>> My script previously was used with procmail and is working fine. >>>> Using same script with vnd.dovecot.filter leads to odd behavior. >>>> I already found out the problem itself: >>>> By sending Mailcontent to filter-programm it seems that >>>> sieve/sieve_extprograms is adding additional linebreaks to every >>>> line of complete mail. >>>> Please see this image to clarify: >>>> http://r31i.imgup.net/header8d56.jpg?l=de >>>> Every lineending got additional windows-lineendings, which leads to >>>> problems with processing scripts. >>>> Piping mails by procmail to same script is working without >>>> problems, because this mails are recieved "clean" without the "^M". >>> >>> Well, the specified format for an internet message like e-mail has >>> CRLF line endings everywhere. That's why this happens now: >>> >>> http://hg.rename-it.nl/dovecot-2.2-pigeonhole/file/5df1b6d72ec2/src/plugins/sieve-extprograms/sieve-extprograms-common.c#l604 >>> >>> >>> But maybe that is not such a good idea in a UNIX environment. I >>> think I can just make it configurable. >> >> ahh, there it is. i think just commenting out this line in my sources >> will result in some errors. Is there a possibility for me to make a >> quickfix in my sources? (use other function or something like that) > > You can replace it with the i_stream_create_lf() function, which > enforces LF rather than CR+LF, which would be what you need.Unfortunately i have to continue this issue. During my last updates this problem is occured again. This are my versions: # 2.2.21 (): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.11 (6ddf62b87f60+) # OS: Linux 3.13.0-77-generic x86_64 Ubuntu 14.04.4 LTS I tried to configure the linebreaks in my plugin section of /etc/dovecot/dovecot.conf by: sieve_extprograms_input_eol = lf But it seems to have no effect. Is this configured the right way or i have to use 0.4.12? Currently it looks like this: plugin { sieve = ~/sieve/.dovecot.sieve sieve_before = ~/sieve_before/.dovecot_before.sieve sieve_after = ~/sieve_after/.dovecot_after.sieve sieve_plugins = sieve_extprograms sieve_extensions = +vnd.dovecot.pipe +vnd.dovecot.filter +vnd.dovecot.execute +editheader sieve_pipe_bin_dir = /usr/local/bin/ sieve_filter_bin_dir = /usr/local/bin/ sieve_dir = ~/sieve sieve_global_dir = /etc/dovecot/sieve/ sieve_extprograms_input_eol = lf }> > Regards, > > Stephan. > >Thanks, Hajo
Op 29-2-2016 om 13:11 schreef Hajo Locke:> Hello, > > > Am 09.09.2015 um 13:30 schrieb Stephan Bosch: >> >> >> Op 9-9-2015 om 12:37 schreef Hajo Locke: >>> Hello, >>> >>> >>> Am 09.09.2015 um 11:26 schrieb Stephan Bosch: >>>> >>>> >>>> Op 8-9-2015 om 13:10 schreef Hajo Locke: >>>>> Hello List, >>>>> >>>>> i have a problem when using sieve-plugin sieve_extprograms. I use >>>>> dovecot 2.2.18 and bundled pigeonhole 0.4.6 (Ubuntu 14.04.3 LTS) >>>>> >>>>> i have enabled sieve_extprograms and vnd.dovecot.filter to send >>>>> mail to user-defined script and get changed content back. >>>>> My script previously was used with procmail and is working fine. >>>>> Using same script with vnd.dovecot.filter leads to odd behavior. >>>>> I already found out the problem itself: >>>>> By sending Mailcontent to filter-programm it seems that >>>>> sieve/sieve_extprograms is adding additional linebreaks to every >>>>> line of complete mail. >>>>> Please see this image to clarify: >>>>> http://r31i.imgup.net/header8d56.jpg?l=de >>>>> Every lineending got additional windows-lineendings, which leads >>>>> to problems with processing scripts. >>>>> Piping mails by procmail to same script is working without >>>>> problems, because this mails are recieved "clean" without the "^M". >>>> >>>> Well, the specified format for an internet message like e-mail has >>>> CRLF line endings everywhere. That's why this happens now: >>>> >>>> http://hg.rename-it.nl/dovecot-2.2-pigeonhole/file/5df1b6d72ec2/src/plugins/sieve-extprograms/sieve-extprograms-common.c#l604 >>>> >>>> >>>> But maybe that is not such a good idea in a UNIX environment. I >>>> think I can just make it configurable. >>> >>> ahh, there it is. i think just commenting out this line in my >>> sources will result in some errors. Is there a possibility for me to >>> make a quickfix in my sources? (use other function or something like >>> that) >> >> You can replace it with the i_stream_create_lf() function, which >> enforces LF rather than CR+LF, which would be what you need. > Unfortunately i have to continue this issue. > During my last updates this problem is occured again. This are my > versions: > # 2.2.21 (): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.4.11 (6ddf62b87f60+) > # OS: Linux 3.13.0-77-generic x86_64 Ubuntu 14.04.4 LTS > > I tried to configure the linebreaks in my plugin section of > /etc/dovecot/dovecot.conf by: > sieve_extprograms_input_eol = lf > > But it seems to have no effect. Is this configured the right way or i > have to use 0.4.12?No wonder, since there is no such setting. Settings that do exist are: "sieve_pipe_input_eol", "sieve_execute_input_eol", and "sieve_filter_input_eol". Regards, Stephan.