]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/perl -w -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 | ||
10 | # NOTE: we need to run this with setgid www-data | |
11 | # else we cant read /etc/pve/user.cfg | |
12 | ||
13 | $( = $); # $GID = $EGID | |
14 | ||
15 | $ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin'; | |
16 | ||
17 | initlog('pvemailforward'); | |
18 | ||
19 | ||
20 | PVE::Cluster::cfs_update(); | |
21 | ||
22 | eval { | |
23 | my $usercfg = cfs_read_file("user.cfg"); | |
24 | my $rootcfg = $usercfg->{users}->{'root@pam'} || {}; | |
25 | my $mailto = $rootcfg->{email}; | |
26 | ||
27 | die "user 'root\@pam' does not have a email address\n" if !$mailto; | |
28 | ||
29 | syslog("info", "forward mail to <$mailto>"); | |
30 | ||
31 | # we never send DSN (avoid mail loops) | |
32 | open(CMD, "|sendmail -bm -N never $mailto") || | |
33 | die "can't exec sendmail - $!\n"; | |
34 | while (<>) { print CMD $_; } | |
35 | close(CMD); | |
36 | }; | |
37 | if (my $err = $@) { | |
38 | syslog('err', "mail forward failed: $err"); | |
39 | } | |
40 | ||
41 | exit(0); |