From 27c3a61c1164d4dbf95a2c688ce3a2b987d9e8eb Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Thu, 12 Mar 2009 17:49:22 +0000 Subject: [PATCH] Fixed getmail problem when more then one getmail account exists. --- install/dist/lib/fedora.lib.php | 11 ++++++++--- install/dist/lib/opensuse.lib.php | 11 ++++++++--- install/lib/installer_base.lib.php | 7 +++++-- server/scripts/run-getmail.sh | 9 +++++++++ 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 server/scripts/run-getmail.sh diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index afe3aa071..97eafdcaa 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -758,6 +758,9 @@ class installer_dist extends installer_base { if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig'); if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log'); + exec('chown getmail /usr/local/ispconfig/server/scripts/run-getmail.sh'); + exec('chmod 744 /usr/local/ispconfig/server/scripts/run-getmail.sh'); + } @@ -817,11 +820,13 @@ class installer_dist extends installer_base { exec('crontab -u getmail -l > crontab.txt'); $existing_cron_jobs = file('crontab.txt'); - $cron_jobs = array('*/5 * * * * '.$cf['program'].' -n -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf &> /dev/null'); - + $cron_jobs = array( + '*/5 * * * * /usr/local/ispconfig/server/scripts/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log' + ); + // remove existing ispconfig cronjobs, in case the syntax has changed foreach($cron_jobs as $key => $val) { - if(stristr($val,$cf['program'])) unset($existing_cron_jobs[$key]); + if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]); } foreach($cron_jobs as $cron_job) { diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 9a49d3051..b5b945709 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -776,6 +776,9 @@ class installer_dist extends installer_base { if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig'); if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log'); + exec('chown getmail /usr/local/ispconfig/server/scripts/run-getmail.sh'); + exec('chmod 744 /usr/local/ispconfig/server/scripts/run-getmail.sh'); + } @@ -835,11 +838,13 @@ class installer_dist extends installer_base { exec('crontab -u getmail -l > crontab.txt'); $existing_cron_jobs = file('crontab.txt'); - $cron_jobs = array('*/5 * * * * '.$cf['program'].' -n -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf &> /dev/null'); - + $cron_jobs = array( + '*/5 * * * * /usr/local/ispconfig/server/scripts/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log' + ); + // remove existing ispconfig cronjobs, in case the syntax has changed foreach($cron_jobs as $key => $val) { - if(stristr($val,$cf['program'])) unset($existing_cron_jobs[$key]); + if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]); } foreach($cron_jobs as $cron_job) { diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 77d0c4371..93283fc12 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1043,6 +1043,9 @@ class installer_base { if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig'); if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log'); + exec('chown getmail /usr/local/ispconfig/server/scripts/run-getmail.sh'); + exec('chmod 744 /usr/local/ispconfig/server/scripts/run-getmail.sh'); + } @@ -1103,12 +1106,12 @@ class installer_base { $existing_cron_jobs = file('crontab.txt'); $cron_jobs = array( - '*/5 * * * * '.$cf['program'].' -n -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /dev/null 2>> /var/log/ispconfig/cron.log' + '*/5 * * * * /usr/local/ispconfig/server/scripts/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log' ); // remove existing ispconfig cronjobs, in case the syntax has changed foreach($cron_jobs as $key => $val) { - if(stristr($val,$cf['program'])) unset($existing_cron_jobs[$key]); + if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]); } foreach($cron_jobs as $cron_job) { diff --git a/server/scripts/run-getmail.sh b/server/scripts/run-getmail.sh new file mode 100644 index 000000000..fab297dd1 --- /dev/null +++ b/server/scripts/run-getmail.sh @@ -0,0 +1,9 @@ +#!/bin/sh +set -e +cd /etc/getmail +rcfiles="" +for file in *.conf ; do +rcfiles="$rcfiles -r $file" +done +#echo $rcfiles +exec /usr/bin/getmail -n -v -g /etc/getmail $rcfiles \ No newline at end of file -- GitLab