]> git.proxmox.com Git - pve-manager.git/blob - bin/pvemailforward.pl
d/postinst: replace pvemailforward with proxmox-mail-forward
[pve-manager.git] / bin / pvemailforward.pl
1 #!/usr/bin/perl -T
2
3 use strict;
4 use warnings;
5 use PVE::Tools;
6 use PVE::SafeSyslog;
7 use PVE::AccessControl;
8 use PVE::Cluster qw (cfs_read_file);
9 use PVE::DataCenterConfig;
10
11 # NOTE: we need to run this with setgid www-data
12 # else we cant read /etc/pve/user.cfg
13
14 $( = $); # $GID = $EGID
15
16 $ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
17
18 initlog('pvemailforward');
19
20
21 PVE::Cluster::cfs_update();
22
23 eval {
24 my $usercfg = cfs_read_file("user.cfg");
25 my $rootcfg = $usercfg->{users}->{'root@pam'} || {};
26 my $mailto = $rootcfg->{email};
27
28 my $dcconf = cfs_read_file('datacenter.cfg');
29 my $mailfrom = $dcconf->{email_from} || "root";
30
31 die "user 'root\@pam' does not have a email address\n" if !$mailto;
32
33 syslog("info", "forward mail to <$mailto>");
34
35 # we never send DSN (avoid mail loops)
36 open(CMD, "|sendmail -bm -N never -f $mailfrom $mailto") ||
37 die "can't exec sendmail - $!\n";
38 while (<>) { print CMD $_; }
39 close(CMD);
40 };
41 if (my $err = $@) {
42 syslog('err', "mail forward failed: $err");
43 }
44
45 exit(0);