mirror of
https://git.proxmox.com/git/pve-common
synced 2025-08-14 09:36:41 +00:00
catch malformed mailto/mailfrom in sendmail
This commit is contained in:
parent
1a0c010327
commit
c9c6d91073
@ -1224,19 +1224,24 @@ sub sync_mountpoint {
|
|||||||
# mailto may be a single email string or an array of receivers
|
# mailto may be a single email string or an array of receivers
|
||||||
sub sendmail {
|
sub sendmail {
|
||||||
my ($mailto, $subject, $text, $html, $mailfrom, $author) = @_;
|
my ($mailto, $subject, $text, $html, $mailfrom, $author) = @_;
|
||||||
|
my $mail_re = qr/[^-a-zA-Z0-9+._@]/;
|
||||||
|
|
||||||
$mailto = [ $mailto ] if !ref($mailto);
|
$mailto = [ $mailto ] if !ref($mailto);
|
||||||
|
|
||||||
my $rcvrarg = '';
|
foreach (@$mailto) {
|
||||||
foreach my $r (@$mailto) {
|
die "illegal character in mailto address\n"
|
||||||
$rcvrarg .= " '$r'";
|
if ($_ =~ $mail_re);
|
||||||
}
|
}
|
||||||
|
|
||||||
my $rcvrtxt = join (', ', @$mailto);
|
my $rcvrtxt = join (', ', @$mailto);
|
||||||
|
|
||||||
$mailfrom = $mailfrom || "root";
|
$mailfrom = $mailfrom || "root";
|
||||||
|
die "illegal character in mailfrom address\n"
|
||||||
|
if $mailfrom =~ $mail_re;
|
||||||
|
|
||||||
$author = $author || 'Proxmox VE';
|
$author = $author || 'Proxmox VE';
|
||||||
|
|
||||||
open (MAIL,"|sendmail -B 8BITMIME -f $mailfrom $rcvrarg") ||
|
open (MAIL, "|-", "sendmail", "-B", "8BITMIME", "-f", $mailfrom, @$mailto) ||
|
||||||
die "unable to open 'sendmail' - $!";
|
die "unable to open 'sendmail' - $!";
|
||||||
|
|
||||||
# multipart spec see https://www.ietf.org/rfc/rfc1521.txt
|
# multipart spec see https://www.ietf.org/rfc/rfc1521.txt
|
||||||
|
Loading…
Reference in New Issue
Block a user