[Postfixbuch-users] Probleme mit PCRE recipient_canonical_maps

Markus Meyer markus.meyer at koeln.de
Mi Sep 22 12:25:39 CEST 2010


Hallo liebe Leute,

ein RegEx in einer PCRE-Map scheint bei mir nicht so zu greifen, wie sie
sollte.

Folgendes Setup habe ich:

main.cf
=======
local_header_rewrite_clients = permit_inet_interfaces, permit_mynetworks
recipient_canonical_maps = pcre:/etc/postfix/pcre-recipient_canonical

Die Map selbst
===============
# cat /etc/postfix/pcre-recipient_canonical
/^[[:alnum:]]{7}-0xrockindahouse0x-(.+ at .+)$/        $1

Die Map funktioniert einwandfrei. Aber schicke ich jetzt eine E-Mail an
einen Empfänger, welche einen Punkt direkt vor dem '@' hat[1], dann
greift der reguläre Ausdruck nicht. Denn würde er greifen, dann hätte
ich im "orig_to" die obige Adresse und im "to" die geänderte Adresse,
nämlich "i.asimov. at provider.de".

# echo aloha | \
 mailx -s "test" bmiej7f-0xrockindahouse0x-i.asimov. at provider.de
# grep asimov /var/log/mail.log
Sep 22 11:40:03 mailx postfix/smtp[17534]: 23477B0B62:
to=<bmiej7f-0xrockindahouse0x-i.asimov. at provider.de>, relay=none,
delay=0.12, delays=0.07/0/0.04/0, dsn=5.4.6, status=bounced


Packe ich die RegExe jedoch in ein Perl-Skript, dann klappt das wunderbar:

tmp > cat test.pl
#!/usr/bin/perl -w
use strict;
my $in = shift;
$in =~ s/^[[:alnum:]]{7}-0xrockindahouse0x-(.+ at .+)$/$1/;
print "$in\n";

tmp > ./test.pl bmiej7f-0xrockindahouse0x-i.asimov. at provider.de
i.asimov. at provider.de

Was läuft hier falsch? Hoffentlich kann mir jemand weiterhelfen.

Gruß und Dank,

	Markus Meyer


[1] laut
http://de.wikipedia.org/wiki/E-Mail-Adresse#Der_Lokale_Teil_.28Local_Part.29
ist das i.O.



Mehr Informationen über die Mailingliste Postfixbuch-users