Split addresses by ; as well as , http://virtualmin.com/node/33664

This commit is contained in:
Jamie Cameron
2014-07-09 16:12:31 -07:00
parent 70822a2483
commit eaa9814bad

View File

@@ -1793,17 +1793,17 @@ sub split_addresses
local (@rv, $str = $_[0]);
while(1) {
$str =~ s/\\"/\0/g;
if ($str =~ /^[\s,]*(([^<>\(\)\s"]+)\s+\(([^\(\)]+)\))(.*)$/) {
if ($str =~ /^[\s,;]*(([^<>\(\)\s"]+)\s+\(([^\(\)]+)\))(.*)$/) {
# An address like foo@bar.com (Fooey Bar)
push(@rv, [ $2, $3, $1 ]);
$str = $4;
}
elsif ($str =~ /^[\s,]*("([^"]+)"\s*<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,]*(([^<>\@]+)\s+<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,]*(([^<>\@]+)<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,]*(([^<>\[\]]+)\s+\[mailto:([^\s\[\]]+)\])(.*)$/||
$str =~ /^[\s,]*(()<([^<>,]+)>)(.*)/ ||
$str =~ /^[\s,]*(()([^\s<>,]+))(.*)/) {
elsif ($str =~ /^[\s,;]*("([^"]+)"\s*<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,;]*(([^<>\@]+)\s+<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,;]*(([^<>\@]+)<([^\s<>,]+)>)(.*)$/ ||
$str =~ /^[\s,;]*(([^<>\[\]]+)\s+\[mailto:([^\s\[\]]+)\])(.*)$/||
$str =~ /^[\s,;]*(()<([^<>,]+)>)(.*)/ ||
$str =~ /^[\s,;]*(()([^\s<>,;]+))(.*)/) {
# Addresses like "Fooey Bar" <foo@bar.com>
# Fooey Bar <foo@bar.com>
# Fooey Bar<foo@bar.com>