[Munich-pm] [halb OT] pcre für Postfix-Adressumschreibung
Stephen Riehm
japh at opensauce.de
Mo Jun 9 13:51:09 PDT 2014
Hi Stefan,
Ich denke zwei Kleinigkeiten müssten schon reichen:
<.*?@ statt <.*@
und um mehrerer Empfänger zu behandeln entweder eine Vereinfachte Pattern und /g oder eine while Schleife, etwa so:
$orig = 'To: =?windows-1252?Q?LHG_1_=28Fax_Gesch=E4ft=29?= <LHG 1 at +41 (8621) 9960237>, =?windows-1252?Q?LHG_2_=28Fax_Gesch=E4ft=29?= <LHG2 at +49 3212-1150047>';
print "was: $orig\n";
$while = $orig;
while( $while =~ s/^To:\s*(.*)<.*?@\+(\d+).*?(\d+).*?(\d+)>/To: $1 <00$2$3$4\@faxmaker.com>/ ) {}
print "while: $while\n";
$subst = $orig;
$subst =~ s/<.*?@\+(\d+).*?(\d+).*?(\d+)>/<00$1$2$3\@faxmaker.com>/g;
print "subst: $subst\n";
Cheers,
Steve
On 09.06.2014, at 21:44, Andreas Hernitscheck <tech at tool.de> wrote:
> Hallo Stefan,
>
> es wäre leichter wenn du in Worten erklärst, was der Regex denn nun tun soll?
>
> Geht denn kein ///g am Ende, um es mehrmals durchführen zu lassen?
>
> Durch einfaches Regex kann man es nicht lösen. Das Wiederholen muss schon vom Interpreter z.B. durch /g nutzbar gemacht werden.
>
> Gibt es vielleicht die Möglichkeit das durch ein externes Script zu jagen?
>
>
>
>
> Am 09.06.14 10:29, schrieb Stefan Bauer:
>> Hallo nach München und Umgebung,
>>
>> ich habe hier ein kniffliges Problem und verzweifle an der Lösung. Mit Postfix gibt es die Möglichkeit, das To: Feld im E-Mail Header umzuschreiben.
>>
>> Das klappt mit meiner Regex prima für einen Empfänger - bei mehreren Empfängern gehen mir die Ideen aus, wie ich das umsetzen kann:
>>
>> Mein Input-String ist:
>>
>> To: =?windows-1252?Q?LHG_1_=28Fax_Gesch=E4ft=29?= <LHG 1 at +49 (8621) 9960237>, =?windows-1252?Q?LHG_2_=28Fax_Gesch=E4ft=29?= <LHG2 at +49 3212-1150047>
>>
>> Mit folgender Anweisung setze ich den String um:
>>
>> /^To:\s*(.*)<.*@\+(\d+).*?(\d+).*?(\d+)>/ To: $1 <00$2$3$4 at faxmaker.com>
>>
>> Auf der Kommandozeile sieht man auch das Ergebnis (leider nur beim letzten Empfänger):
>>
>> root at srv1:/home/stefan# postmap -q "To: =?windows-1252?Q?LHG_1_=28Fax_Gesch=E4ft=29?= <LHG 1 at +49 (8621) 9960237>, =?windows-1252?Q?LHG_2_=28Fax_Gesch=E4ft=29?= <LHG2 at +49 3212-1150047>" pcre:/etc/postfix/rewrite_tofieldTo: =?windows-1252?Q?LHG_1_=28Fax_Gesch=E4ft=29?= <LHG 1 at +49 (8621) 9960237>, =?windows-1252?Q?LHG_2_=28Fax_Gesch=E4ft=29?= <004932121150047 at faxmaker.com>
>>
>> Danke
>>
>> Stefan
>>
>>
>> _______________________________________________
>> Munich-pm mailing list
>> http://munich.pm.org/
>> Munich-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/munich-pm
>
> --
> Andreas Hernitscheck
>
> E-mail:
> tech at tool.de
>
>
> Gertrud-Bäumer-Str. 14
> 80637 Munich, Germany
>
> Phone: +49 176 210 16 397
>
> GPG:
> http://xantavia.net/downloads/team/andreashernitscheck/gpg/andreashernitscheck.asc
>
>
>
>
> _______________________________________________
> Munich-pm mailing list http://munich.pm.org/
> Munich-pm at pm.org
> http://mail.pm.org/mailman/listinfo/munich-pm
Mehr Informationen über die Mailingliste Munich-pm