Better handle multiple mailer destinations
authorJamie Cameron <jcameron@webmin.com>
Thu, 5 May 2011 17:16:58 +0000 (10:16 -0700)
committerJamie Cameron <jcameron@webmin.com>
Thu, 5 May 2011 17:16:58 +0000 (10:16 -0700)
sendmail/mailers-lib.pl
sendmail/save_mailer.cgi

index 93a8ce3..794851a 100755 (executable)
@@ -188,8 +188,13 @@ print &ui_table_row($text{'mform_delivery'},
                       [ $1, $text{"mform_$1"} ] } @mailers ]));
 
 # Show send to input
-if ($m->{'dest'} =~ /^\[(\S+)\]$/) { $dest = $1; $nomx = 1; }
-else { $dest = $m->{'dest'}; }
+$dest = $m->{'dest'};
+if ($dest =~ s/\[([^\]:]+)\]/$1/g) {
+       $nomx = 1;
+       }
+else {
+       $dest = $m->{'dest'};
+       }
 print &ui_table_row($text{'mform_to'},
     &ui_textbox("dest", $dest, 30)."<br>".
     &ui_checkbox("nomx", 1, $text{'mform_ignore'}, $nomx));
index d853a0f..dbfcfb1 100755 (executable)
@@ -35,11 +35,14 @@ else {
                }
        $mailer = $in{'mailer'};
        $dest = $in{'dest'};
+       $dest =~ s/\s+/:/g;
 
        $newm{'domain'} = $domain;
        $newm{'mailer'} = $mailer;
-       $newm{'dest'} = $in{'nomx'} && $mailer =~ /smtp|relay/ ? "[$dest]"
-                                                              : $dest;
+       if ($in{'nomx'} && $mailer =~ /smtp|relay/) {
+               $dest = join(":", map { "[".$_."]" } split(/:/, $dest));
+               }
+       $newm{'dest'} = $dest;
        $newm{'cmt'} = $in{'cmt'};
        if ($in{'new'}) {
                &create_mailer(\%newm, $mfile, $mdbm, $mdbmtype);