Server IP : 195.201.23.43 / Your IP : 18.221.182.97 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/filter/ |
Upload File : |
#!/usr/bin/perl # Create, update or delete an autoreply filter require './filter-lib.pl'; &ReadParse(); &error_setup($text{'auto_err'}); use Time::Local; # Find existing autoreply filter object &lock_file($procmail::procmailrc); @filters = &list_filters(); ($old) = grep { $_->{'actionreply'} && $_->{'nocond'} } @filters; $filter = $old; if ($filter && !$in{'enabled'}) { # Just delete &delete_filter($filter); } elsif ($in{'enabled'}) { # Create or update if (!$filter) { $filter = { 'actionreply' => 1, 'body' => 0, 'continue' => 1 }; } $in{'reply'} =~ /\S/ || &error($text{'save_ereply'}); $in{'reply'} =~ s/\r//g; $filter->{'reply'}->{'autotext'} = $in{'reply'}; # From address (automatic) $filter->{'reply'}->{'from'} = &mailbox::get_preferred_from_address(); # File $idx = defined($filter->{'index'}) ? $filter->{'index'} : scalar(@filters); $filter->{'reply'}->{'autoreply'} ||= "$remote_user_info[7]/autoreply.$idx.txt"; # Reply period if ($config{'reply_force'}) { # Forced to minimum $min = $config{'reply_min'} || 60; $filter->{'reply'}->{'period'} = $min*60; $filter->{'reply'}->{'replies'} ||= "$user_module_config_directory/replies"; } elsif ($in{'period_def'}) { # No autoreply period delete($filter->{'reply'}->{'replies'}); delete($filter->{'reply'}->{'period'}); } else { # Set reply period and tracking file $in{'period'} =~ /^\d+$/ || &error($text{'save_eperiod'}); if ($config{'reply_min'} && $in{'period'} < $config{'reply_min'}) { &error(&text('save_eperiodmin', $config{'reply_min'})); } $filter->{'reply'}->{'period'} = $in{'period'}*60; $filter->{'reply'}->{'replies'} ||= "$user_module_config_directory/replies"; } # Save character set if ($in{'charset_def'} == 1) { delete($filter->{'reply'}->{'charset'}); } elsif ($in{'charset_def'} == 2) { $filter->{'reply'}->{'charset'} = &get_charset(); } else { $in{'charset'} =~ /^[a-z0-9\.\-\_]+$/i || error($text{'save_echarset'}); $filter->{'reply'}->{'charset'} = $in{'charset'}; } # Save subject if ($in{'subject_def'}) { delete($filter->{'reply'}->{'subject'}); } else { $filter->{'reply'}->{'subject'} = $in{'subject'}; } # Save autoreply start and end foreach $p ('start', 'end') { local ($s, $m, $h) = $p eq 'start' ? (0, 0, 0) : (59, 59, 23); if (!$in{$p.'_def'}) { eval { $tm = timelocal($s, $m, $h, $in{'d'.$p}, $in{'m'.$p}-1, $in{'y'.$p}-1900); }; $tm || &error($text{'save_e'.$p}); $filter->{'reply'}->{'autoreply_'.$p} = $tm; } else { delete($filter->{'reply'}->{'autoreply_'.$p}); } } if ($old) { &modify_filter($filter); } else { &insert_filter($filter); } } &unlock_file($procmail::procmailrc); &redirect("");Private