В Втр, 03/03/2009 в 14:01 +0300, Герасимов Александр Викторович пишет:
> >Александр, вы могли бы более четко сформировать правила валидации ваших
> >адресов в части username в терминах "пропускаем bla-bla и gla-gla, все
> >остальное режем" ?
>
> Ну, на сколько я понимаю в адресах разрешены только латинские буквы, цифры, и некоторые знаки.
> По большому счету мне всеравно, главное чтобы перл не вешался.
> А письма принимаем только если нашли совпадение в текстовых списках!
Решение сильно кривое, но только "чтобы перл не вешался". Разрешает только username, который начинается на букву или цифру вида "username" , "user.name" , "user-name" . Вся остальная почта будет обрезана (!).
$ diff -u -U 5 mail.orig.pl mail.pl
--- mail.orig.pl 2009-03-04 13:06:05.000000000 +0300 +++ mail.pl 2009-03-04 13:11:04.000000000 +0300@@ -46,10 +46,13 @@
sub checkAddress {
my ($name,$domain)=@_; my $lines=""; my $status=""; + + return undef if not $name =~ m/^\w+[-.]?\w+$/i ; + open(FILE,$File1) or return undef; while(<FILE>){ if(/$name\@$domain/i){ return $Response1; }else{ @@ -67,7 +70,5 @@ }
return undef;
}
То есть вставьте в ваш оригинальный скрипт после 50 строки: return undef if not $name =~ m/^\w+[-.]?\w+$/i ;'
Если нужны еще символы внутри username, то добавьте их в скобки [-.] .
--- С уважением, Андрей СтаценкоПолучено Wed Mar 04 10:24:39 2009
Этот архив был сгенерирован hypermail 2.1.8 : Wed 04 Mar 2009 - 16:15:42 MSK