Bug 94293: Sendmail "from" header can not be configured in one config file, From header broken in SMTP

Patch by Jochen Wiedmann <jochen.wiedmann@gmail.com> r=glob,a=justdave
This commit is contained in:
bugzilla%glob.com.au 2005-12-23 01:36:19 +00:00
Родитель 05c4905fea
Коммит 410f9bdfe9
1 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -639,8 +639,16 @@ sub MessageToMTA {
$headers = new Mail::Header \@header_lines, Modify => 0;
}
my $from = $headers->get('from');
if (Param("mail_delivery_method") eq "sendmail" && $^O =~ /MSWin32/i) {
open(SENDMAIL, '|' . SENDMAIL_EXE . ' -t -i') ||
my $cmd = '|' . SENDMAIL_EXE . ' -t -i';
if ($from) {
# We're on Windows, thus no danger of command injection
# via $from. In other words, it is safe to embed $from.
$cmd .= qq# -f"$from"#;
}
open(SENDMAIL, $cmd) ||
die "Failed to execute " . SENDMAIL_EXE . ": $!\n";
print SENDMAIL $headers->as_string;
print SENDMAIL "\n";
@ -652,12 +660,18 @@ sub MessageToMTA {
my @args;
if (Param("mail_delivery_method") eq "sendmail") {
push @args, "-i";
if ($from) {
push(@args, "-f$from");
}
}
if (Param("mail_delivery_method") eq "sendmail" && !Param("sendmailnow")) {
push @args, "-ODeliveryMode=deferred";
}
if (Param("mail_delivery_method") eq "smtp") {
push @args, Server => Param("smtpserver");
if ($from) {
$ENV{'MAILADDRESS'} = $from;
}
}
my $mailer = new Mail::Mailer Param("mail_delivery_method"), @args;
if (Param("mail_delivery_method") eq "testfile") {