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

Reply via email to