Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comm.software.mailserver > #5658 > unrolled thread

procmail: Probleme mit umbrochenen Headerzeilen

Started bySebastian Suchanek <sebastian.suchanek@gmx.de>
First post2017-04-21 17:37 +0200
Last post2017-04-22 13:32 +0000
Articles 7 — 4 participants

Back to article view | Back to de.comm.software.mailserver


Contents

  procmail: Probleme mit umbrochenen Headerzeilen Sebastian Suchanek <sebastian.suchanek@gmx.de> - 2017-04-21 17:37 +0200
    Re: procmail: Probleme mit umbrochenen Headerzeilen Sven Hartge <sh-174@svenhartge.de> - 2017-04-21 19:52 +0200
      Re: procmail: Probleme mit umbrochenen Headerzeilen Sebastian Suchanek <sebastian.suchanek@gmx.de> - 2017-04-22 12:26 +0200
        Re: procmail: Probleme mit umbrochenen Headerzeilen Sven Hartge <sh-174@svenhartge.de> - 2017-04-22 13:20 +0200
          Re: procmail: Probleme mit umbrochenen Headerzeilen Sebastian Suchanek <sebastian.suchanek@gmx.de> - 2017-04-22 15:19 +0200
    Re: procmail: Probleme mit umbrochenen Headerzeilen Claus Aßmann <ca+sendmail(-no-copies-please)@mine.informatik.uni-kiel.de> - 2017-04-22 13:27 +0000
    Re: procmail: Probleme mit umbrochenen Headerzeilen "Andreas M. Kirchwitz" <amk@spamfence.net> - 2017-04-22 13:32 +0000

#5658 — procmail: Probleme mit umbrochenen Headerzeilen

FromSebastian Suchanek <sebastian.suchanek@gmx.de>
Date2017-04-21 17:37 +0200
Subjectprocmail: Probleme mit umbrochenen Headerzeilen
Message-ID<odd8vg$ptn$1@msgid.suchanek.de>
Hallo NG!

Vorweg: wenn jemand eine passendere NG für das folgende Anliegen kennt,
bitte entsprechend f'uppen.

Nun zum eigentlichen Problem: Auf meinem Server verwende ich procmail,
um mir eingehende Mails automatisch eine ausgedehnte IMAP-Ordnerstruktur
zu sortieren. Grundsätzlich klappt das wunderbar, allerdings tut
folgende Regel nicht ganz das, was sie soll:

| [...]
| :0
| * ^Subject:.*ende(t|n)(\s|_)bald
| * ^From.*ebay@ebay.(de|com)
| .eBay.Erinnerungen/
| [...]

Denn seit Kurzem umbricht eBay - zumindest bei Betreffs mit
ausschließlich 7-bit-ASCII-Zeichen - die Subject-Zeile:

| [...]
| Subject: $Teil_1_des_Auktionstitels
|  $Teil_2_desAuktionstitels endet bald, $eBay-Name
| [...]

Randnotiz 1: Wenn der Auktionstitel Umlaute o.ä. enthält, codiert eBay
   das Subject in UTF-8 und umbricht die Zeile nicht - dann
   funktioniert auch die o.g. procmail-Regel.

Randnotiz 2: Man kann an dieser Stelle ausnahmsweise eBay nicht mal
   einen Vorwurf machen, umbrochene Headerzeilen sind laut RfC 5322 ja
   ausdrücklich erlaubt.

Die Frage ist jetzt nur: Wie kann ich procmail dazu bringen, auch Mails
mit umbrochenen Headerzeilen korrekt zu behandeln? (Immerhin behaupten
einige Google-Fundstellen, procmail würde das standardmäßig automagisch
machen...)


TIA,

Sebastian

[toc] | [next] | [standalone]


#5659

FromSven Hartge <sh-174@svenhartge.de>
Date2017-04-21 19:52 +0200
Message-ID<ddeg5fh81g3v8@mids.svenhartge.de>
In reply to#5658
Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:

> Die Frage ist jetzt nur: Wie kann ich procmail dazu bringen, auch Mails
> mit umbrochenen Headerzeilen korrekt zu behandeln? (Immerhin behaupten
> einige Google-Fundstellen, procmail würde das standardmäßig automagisch
> machen...)

Eigentlich kommt procmail seit 1994 mit umbrochenen Header-Zeilen klar,
wenngleich der Code ein wenig zu schlampig programmiert war. Dies
betrifft dein Problem aber nicht.

Kannst du deine Regel einmal in eine separate Datei auslagern, dort
zusätzlich noch VERBOSE=yes definieren, dann eine das Problem
reproduzierende Test-Mail manuall nach procmail pipen und dann die
Ausgabe wieder hier posten?

S°

-- 
Sigmentation fault. Core dumped.

[toc] | [prev] | [next] | [standalone]


#5660

FromSebastian Suchanek <sebastian.suchanek@gmx.de>
Date2017-04-22 12:26 +0200
Message-ID<odfb56$np1$1@msgid.suchanek.de>
In reply to#5659
Am 21.04.2017 um 19:52 schrieb Sven Hartge:
> Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:
> 
>> Die Frage ist jetzt nur: Wie kann ich procmail dazu bringen, auch Mails
>> mit umbrochenen Headerzeilen korrekt zu behandeln? (Immerhin behaupten
>> einige Google-Fundstellen, procmail würde das standardmäßig automagisch
>> machen...)
> 
> Eigentlich kommt procmail seit 1994 mit umbrochenen Header-Zeilen klar,
> wenngleich der Code ein wenig zu schlampig programmiert war. Dies
> betrifft dein Problem aber nicht.
> 
> Kannst du deine Regel einmal in eine separate Datei auslagern, dort
> zusätzlich noch VERBOSE=yes definieren, dann eine das Problem
> reproduzierende Test-Mail manuall nach procmail pipen und dann die
> Ausgabe wieder hier posten?

Klar...
(Nur meine E-Mail-Adresse und mein eBay-Name sind hier anonymisiert.)

---------------------------- 8< ---------------------------------

root@tigersclaw:~/mailtest# ll
total 164
drwxr-xr-x  4 root root   4096 Apr 22 12:14 .
drwx------ 11 root root   4096 Apr 22 12:14 ..
drwxr-xr-x  2 root root   4096 Apr 22 12:15 default
drwxr-xr-x  2 root root   4096 Apr 22 12:09 match
-rw-r--r--  1 root root 143980 Apr 22 12:11 testmail
-rw-r--r--  1 root root    228 Apr 22 12:09 testrc
root@tigersclaw:~/mailtest#

---------------------------- 8< ---------------------------------

root@tigersclaw:~/mailtest# cat testrc
SHELL=/bin/sh
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
MAILDIR=$HOME/Maildir/
LOGABSTRACT="all"
VERBOSE="on"

:0
* ^Subject:.*ende(t|n)(\s|_)bald
* ^From.*ebay@ebay.(de|com)
match

:0
*
/root/mailtest/default
root@tigersclaw:~/mailtest#

---------------------------- 8< ---------------------------------

root@tigersclaw:~/mailtest# grep -C3 ^Subject testmail
From: eBay <ebay@ebay.de>
To: localpart@domain.tld
Message-ID: <6be8a0ff-7b1c-4518-9e4b-ee2e43bd5252@chd1b02c-65e7>
Subject: Sapphire ATI Radeon X1600 PRO (512 MB) AGP Grafikkarte endet bald,
 XXXXX
MIME-Version: 1.0
Content-Type: multipart/alternative;
root@tigersclaw:~/mailtest#

---------------------------- 8< ---------------------------------

root@tigersclaw:~/mailtest# cat testmail | procmail ./testrc
procmail: Couldn't chdir to "/root/Maildir/"
procmail: [24039] Sat Apr 22 12:24:13 2017
procmail: No match on "^Subject:.*ende(t|n)(\s|_)bald"
procmail: Match on ""
procmail: Assigning "LASTFOLDER=/root/mailtest/default/msg.tCAcB"
procmail: Opening "/root/mailtest/default/msg.tCAcB"
procmail: Acquiring kernel-lock
 Subject: Sapphire ATI Radeon X1600 PRO (512 MB) AGP Grafikkarte endet bald,
  Folder: /root/mailtest/default/msg.tCAcB
 143980
root@tigersclaw:~/mailtest#

---------------------------- 8< ---------------------------------


Tschüs,

Sebastian

[toc] | [prev] | [next] | [standalone]


#5661

FromSven Hartge <sh-174@svenhartge.de>
Date2017-04-22 13:20 +0200
Message-ID<fdei2t381g3v8@mids.svenhartge.de>
In reply to#5660
Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:

> Subject: Sapphire ATI Radeon X1600 PRO (512 MB) AGP Grafikkarte endet bald,
>  XXXXX

> procmail: No match on "^Subject:.*ende(t|n)(\s|_)bald"

Der irritierende Teil ist, dass der Teil der Regexp, die matchen müßte,
ja sogar in der ersten Zeile vorkommt, d.h, selbst wenn das Unfolding
kaputt wäre, müßte es einen Match geben.

S°

-- 
Sigmentation fault. Core dumped.

[toc] | [prev] | [next] | [standalone]


#5662

FromSebastian Suchanek <sebastian.suchanek@gmx.de>
Date2017-04-22 15:19 +0200
Message-ID<odfl99$67v$1@msgid.suchanek.de>
In reply to#5661
Am 22.04.2017 um 13:20 schrieb Sven Hartge:
> Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:
> 
>> Subject: Sapphire ATI Radeon X1600 PRO (512 MB) AGP Grafikkarte endet bald,
>>  XXXXX
> 
>> procmail: No match on "^Subject:.*ende(t|n)(\s|_)bald"
> 
> Der irritierende Teil ist, dass der Teil der Regexp, die matchen müßte,
> ja sogar in der ersten Zeile vorkommt, d.h, selbst wenn das Unfolding
> kaputt wäre, müßte es einen Match geben.

In diesem speziellen Fall ja.

Davon abgesehen habe ich heute noch das "Versagen" einer weiteren
procmail-Filterregel für eBay-Mails beobachtet, bei der derjenige
Subject-Teil, auf den die Regel eigentlich matchen müsste, sogar ganz
vorne in der Zeile steht. Gemeinsamkeit in beiden Fällen ist, dass in
der Filterregel ein "\s" vorkommt.
Daraufhin habe ich die o.g. Filterregel etwas abgewandelt:

---------------------------- 8< ---------------------------------

root@tigersclaw:~/mailtest# cat testmail | procmail ./testrc
procmail: Couldn't chdir to "/root/Maildir/"
procmail: [4743] Sat Apr 22 15:00:08 2017
procmail: Match on "^Subject:.*ende(t|n)( |_)bald"
procmail: Match on "^From.*ebay@ebay.(de|com)"
procmail: Assigning "LASTFOLDER=match/msg.oCAcB"
procmail: Opening "match/msg.oCAcB"
procmail: Acquiring kernel-lock
 Subject: Sapphire ATI Radeon X1600 PRO (512 MB) AGP Grafikkarte endet bald,
  Folder: match/msg.oCAcB
 143980
root@tigersclaw:~/mailtest#

---------------------------- 8< ---------------------------------

Gerade habe ich noch ein wenig gegoogelt - wenn ich die Zusammenhänge
richtig verstanden habe, greift procmail intern auf egrep zurück und das
kennt den PCRE-Ausdruck "\s" nicht.


Tschüs,

Sebastian

[toc] | [prev] | [next] | [standalone]


#5663

FromClaus Aßmann <ca+sendmail(-no-copies-please)@mine.informatik.uni-kiel.de>
Date2017-04-22 13:27 +0000
Message-ID<odflo5$8h3$1@dont-email.me>
In reply to#5658
Sebastian Suchanek  wrote:

> | * ^Subject:.*ende(t|n)(\s|_)bald

> | Subject: $Teil_1_des_Auktionstitels
> |  $Teil_2_desAuktionstitels endet bald, $eBay-Name

$ cat prc
VERBOSE=YES
:0:
* ^Subject:.*ende[tn][_ ]bald
* ^From.*ebay@ebay.(de|com)
ended
$ procmail -t -m prc -d $USER << EOF
Date: Tue, 7 Feb 2012 18:32:42 -0800^M
From: ebay@ebay.de^M
To: $USER@example.org^M
Subject: Teil_1_des_Auktionstitels^M
        Teil_2_desAuktionstitels endet bald, $eBay-Name^M
Message-ID: <20120208023242.GA24762@quiet.esmtp.org>^M
^M
egal^M
^M
EOF
procmail: [26962] Sat Apr 22 06:27:16 2017
procmail: Match on "^Subject:.*ende[tn][_ ]bald"
procmail: Match on "^From.*ebay@ebay.(de|com)"
...


-- 
Note: please read the netiquette before posting. I will almost never
reply to top-postings which include a full copy of the previous
article(s) at the end because it's annoying, shows that the poster
is too lazy to trim his article, and it's wasting the time of all readers.

[toc] | [prev] | [next] | [standalone]


#5664

From"Andreas M. Kirchwitz" <amk@spamfence.net>
Date2017-04-22 13:32 +0000
Message-ID<slrnofmmqf.spr.amk@msgid.krell.zikzak.de>
In reply to#5658
Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:

>| [...]
>| :0
>| * ^Subject:.*ende(t|n)(\s|_)bald
>| * ^From.*ebay@ebay.(de|com)
>| .eBay.Erinnerungen/
>| [...]

Procmail kennt leider kein \s als Whitespace-Umschreibung wie Perl.
Man muss daher auf Space und Tab (kann man direkt in die Procmail-
Regel schreiben, das klappt schon) jeweils einzeln prüfen.

Deine Regel funktioniert daher nur bei Quoted-Printable, wenn das
Leerzeichen durch _ ersetzt wird.

Folgendes sollte das Gewünschte erreichen:

	* ^Subject:.*ende(t|n)[ 	_]bald

Ob man in diesem Fall überhaupt auf Tab prüfen muss, kann ich nicht
beurteilen, aber es schadet freilich nicht.

	Grüße, Andreas

[toc] | [prev] | [standalone]


Back to top | Article view | de.comm.software.mailserver


csiph-web