Add support for passing recipients to sendmail
authorJamie Cameron <jcameron@webmin.com>
Fri, 19 Aug 2011 05:47:35 +0000 (22:47 -0700)
committerJamie Cameron <jcameron@webmin.com>
Fri, 19 Aug 2011 05:47:35 +0000 (22:47 -0700)
mailboxes/mailboxes-lib.pl

index 2cd1af7..36f5111 100755 (executable)
@@ -28,17 +28,20 @@ if ($config{'mail_system'} == 3) {
        &save_module_config() if ($config{'mail_system'} != 3);
        }
 
-# send_mail_program(from, to)
+# send_mail_program(from, &dests)
 # Returns the command for injecting email, based on the mail system in use
 sub send_mail_program
 {
+my ($from, $dests) = @_;
+my $qdests = join(" ", map { quotemeta($_) } @$dests);
+
 if ($config{'mail_system'} == 1 || $config{'mail_system'} == 0) {
        # Use sendmail executable, or postfix wrapper
        local %sconfig = &foreign_check("sendmail") &&
                         $config{'mail_system'} == 1 ?
                                &foreign_config("sendmail") : ( );
        local $cmd = &has_command($sconfig{'sendmail_path'} || "sendmail");
-       return "$cmd -t -f".quotemeta($_[0]) if ($cmd);
+       return "$cmd -f".quotemeta($_[0])." ".$qdests if ($cmd);
        }
 elsif ($config{'mail_system'} == 2) {
        # Use qmail injector
@@ -51,7 +54,7 @@ elsif ($config{'mail_system'} == 2) {
 else {
        # Fallback - use sendmail command
        local $cmd = &has_command("sendmail");
-       return "$cmd -t -f".quotemeta($_[0]) if ($cmd);
+       return "$cmd -f".quotemeta($_[0])." ".$qdests if ($cmd);
        }
 return undef;
 }