[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