mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 04:29:28 +01:00
* Mail: allow to configure an auto-responder, if Sieve supports the vacation-seconds extension
This commit is contained in:
parent
c5e7f7d7e7
commit
2f0a38e4f1
@ -77,6 +77,7 @@ class Script
|
|||||||
{
|
{
|
||||||
$this->extensions = [
|
$this->extensions = [
|
||||||
'vacation' => $connection->hasExtension('vacation'),
|
'vacation' => $connection->hasExtension('vacation'),
|
||||||
|
'vacation-seconds' => $connection->hasExtension('vacation-seconds'),
|
||||||
'regex' => $connection->hasExtension('regex'),
|
'regex' => $connection->hasExtension('regex'),
|
||||||
'enotify' => $connection->hasExtension('enotify'),
|
'enotify' => $connection->hasExtension('enotify'),
|
||||||
'body' => $connection->hasExtension('body'),
|
'body' => $connection->hasExtension('body'),
|
||||||
@ -434,7 +435,7 @@ class Script
|
|||||||
|
|
||||||
if ($this->vacation) {
|
if ($this->vacation) {
|
||||||
$vacation = $this->vacation;
|
$vacation = $this->vacation;
|
||||||
if (!$vacation['days']) $vacation['days'] = $default->vacation_days ?: '';
|
if ((string)$vacation['days'] === '' || $vacation['days'] < 0) $vacation['days'] = $default->vacation_days ?: 3;
|
||||||
if (!$vacation['text']) $vacation['text'] = $default->vacation_text ?: '';
|
if (!$vacation['text']) $vacation['text'] = $default->vacation_text ?: '';
|
||||||
if (!$vacation['status']) $vacation['status'] = 'on';
|
if (!$vacation['status']) $vacation['status'] = 'on';
|
||||||
|
|
||||||
@ -489,7 +490,14 @@ class Script
|
|||||||
}
|
}
|
||||||
if (!isset($vacation['modus']) || $vacation['modus'] !== 'store')
|
if (!isset($vacation['modus']) || $vacation['modus'] !== 'store')
|
||||||
{
|
{
|
||||||
$vac_rule .= "vacation :days " . $vacation['days'];
|
if ($vacation['days'])
|
||||||
|
{
|
||||||
|
$vac_rule .= "vacation :days " . $vacation['days'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$vac_rule .= "vacation :seconds 1";
|
||||||
|
}
|
||||||
$first = 1;
|
$first = 1;
|
||||||
if (!empty($vacation['addresses'][0]))
|
if (!empty($vacation['addresses'][0]))
|
||||||
{
|
{
|
||||||
@ -589,7 +597,7 @@ class Script
|
|||||||
if ($this->extensions['regex'] && $regexused) $newscripthead .= ",\"regex\"";
|
if ($this->extensions['regex'] && $regexused) $newscripthead .= ",\"regex\"";
|
||||||
if ($rejectused) $newscripthead .= ",\"reject\"";
|
if ($rejectused) $newscripthead .= ",\"reject\"";
|
||||||
if ($this->vacation && $vacation_active) {
|
if ($this->vacation && $vacation_active) {
|
||||||
$newscripthead .= ",\"vacation\"";
|
$newscripthead .= (string)$this->vacation['days'] === '0' ? ',"vacation-seconds"' : ',"vacation"';
|
||||||
}
|
}
|
||||||
if ($this->extensions['body']) $newscripthead .= ",\"body\"";
|
if ($this->extensions['body']) $newscripthead .= ",\"body\"";
|
||||||
if ($this->extensions['date']) $newscripthead .= ",\"date\"";
|
if ($this->extensions['date']) $newscripthead .= ",\"date\"";
|
||||||
@ -604,7 +612,7 @@ class Script
|
|||||||
$closeRequired = false;
|
$closeRequired = false;
|
||||||
if ($this->vacation)
|
if ($this->vacation)
|
||||||
{
|
{
|
||||||
$newscripthead .= "require [\"vacation\"";
|
$newscripthead .= (string)$this->vacation['days'] === '0' ? ',"vacation-seconds"' : ',"vacation"';
|
||||||
if ($this->extensions['variables']) $newscripthead .= ',"variables"';
|
if ($this->extensions['variables']) $newscripthead .= ',"variables"';
|
||||||
if ($this->extensions['regex'] && $regexused) $newscripthead .= ",\"regex\"";
|
if ($this->extensions['regex'] && $regexused) $newscripthead .= ",\"regex\"";
|
||||||
if ($this->extensions['date']) $newscripthead .= ",\"date\"";
|
if ($this->extensions['date']) $newscripthead .= ",\"date\"";
|
||||||
|
@ -590,7 +590,8 @@ class mail_sieve
|
|||||||
Framework::refresh_opener($msg, 'mail');
|
Framework::refresh_opener($msg, 'mail');
|
||||||
}
|
}
|
||||||
//Set default value for days new entry
|
//Set default value for days new entry
|
||||||
if (empty($content['days']))
|
if ((string)$content['days'] === '' || $content['days'] < 0 ||
|
||||||
|
!$content['days'] && !in_array('VACATION-SECONDS', $icServer->getExtensions()))
|
||||||
{
|
{
|
||||||
$content['days'] = '3';
|
$content['days'] = '3';
|
||||||
}
|
}
|
||||||
@ -709,6 +710,14 @@ class mail_sieve
|
|||||||
),
|
),
|
||||||
'addresses' => array_combine($vacRules['aliases'],$vacRules['aliases']),
|
'addresses' => array_combine($vacRules['aliases'],$vacRules['aliases']),
|
||||||
);
|
);
|
||||||
|
if (in_array('VACATION-SECONDS', $icServer->getExtensions()))
|
||||||
|
{
|
||||||
|
$sel_options['days']['0'] = lang('Always respond / auto-responder');
|
||||||
|
}
|
||||||
|
for($d=1; $d <= 31; ++$d)
|
||||||
|
{
|
||||||
|
$sel_options['days'][(string)$d] = $d === 1 ? lang('Once per day') : lang('Every %1. day', $d);
|
||||||
|
}
|
||||||
if (!isset($account_id))
|
if (!isset($account_id))
|
||||||
{
|
{
|
||||||
$readonlys['acc_id'] = true;
|
$readonlys['acc_id'] = true;
|
||||||
@ -849,7 +858,7 @@ class mail_sieve
|
|||||||
$this->errorStack['text'] = lang('Please supply the message to send with auto-responses').'! ';
|
$this->errorStack['text'] = lang('Please supply the message to send with auto-responses').'! ';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$_vacation['days'])
|
if ((string)$_vacation['days'] === '' || $_vacation['days'] < 0)
|
||||||
{
|
{
|
||||||
$this->errorStack['days'] = lang('Please select the number of days to wait between responses').'!';
|
$this->errorStack['days'] = lang('Please select the number of days to wait between responses').'!';
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,7 @@ allow users to create further identities mail de Anwender dürfen weitere Identi
|
|||||||
allways a new window mail de immer in einem neuen Fenster
|
allways a new window mail de immer in einem neuen Fenster
|
||||||
always mail de Immer
|
always mail de Immer
|
||||||
always allow external sources from %1 mail de Erlaube externe Bildquellen von %1
|
always allow external sources from %1 mail de Erlaube externe Bildquellen von %1
|
||||||
|
always respond / auto-responder mail de Immer antworten / Auto-Responder
|
||||||
always show html emails mail de HTML-E-Mails immer anzeigen
|
always show html emails mail de HTML-E-Mails immer anzeigen
|
||||||
always show notifiction mail de Benachrichtigungen immer anzeigen
|
always show notifiction mail de Benachrichtigungen immer anzeigen
|
||||||
an error happend while trying to remove acl rights from the account %1! mail de Ein Fehler trat auf beim Versuch die Zugriffskontrollrechte vom Konto %1 zu entfernen!
|
an error happend while trying to remove acl rights from the account %1! mail de Ein Fehler trat auf beim Versuch die Zugriffskontrollrechte vom Konto %1 zu entfernen!
|
||||||
@ -218,6 +219,7 @@ error: could not send message. mail de FEHLER: Die Nachricht konnte nicht versen
|
|||||||
error: message could not be displayed. mail de FEHLER: Die Nachricht kann nicht angezeigt werden.
|
error: message could not be displayed. mail de FEHLER: Die Nachricht kann nicht angezeigt werden.
|
||||||
esync will fail without a working email configuration! mail de eSync steht Ihnen nicht zur Verfügung, weil kein gültiges Mailkonto eingestellt wurde!
|
esync will fail without a working email configuration! mail de eSync steht Ihnen nicht zur Verfügung, weil kein gültiges Mailkonto eingestellt wurde!
|
||||||
event details follow mail de Details zum Termin folgen
|
event details follow mail de Details zum Termin folgen
|
||||||
|
every %1. day mail de Jeden %1. Tag
|
||||||
everyone mail de Alle Anwender
|
everyone mail de Alle Anwender
|
||||||
examine namespace to retrieve folders in others and shared mail de Den Namensraum untersuchen, um Ordner in anderen und gemeinsam genutzten Ordnern abzurufen
|
examine namespace to retrieve folders in others and shared mail de Den Namensraum untersuchen, um Ordner in anderen und gemeinsam genutzten Ordnern abzurufen
|
||||||
extended mail de Erweitert
|
extended mail de Erweitert
|
||||||
@ -408,6 +410,7 @@ notify when new mails arrive in these folders mail de Benachrichtigung, sobald n
|
|||||||
on mail de am
|
on mail de am
|
||||||
on behalf of mail de Im Namen von
|
on behalf of mail de Im Namen von
|
||||||
on vacation mail de Abwesenheit
|
on vacation mail de Abwesenheit
|
||||||
|
once per day mail de Einmal pro Tag
|
||||||
one address is not valid mail de Eine Adresse ist ungültig
|
one address is not valid mail de Eine Adresse ist ungültig
|
||||||
only email mail de Nur E-Mail
|
only email mail de Nur E-Mail
|
||||||
only if currently in an other app mail de Nur anzeigen wenn aktuell in einer anderen Anwendung
|
only if currently in an other app mail de Nur anzeigen wenn aktuell in einer anderen Anwendung
|
||||||
|
@ -50,6 +50,7 @@ allow users to create further identities mail en Allow users to create further i
|
|||||||
allways a new window mail en Allways a new window
|
allways a new window mail en Allways a new window
|
||||||
always mail en Always
|
always mail en Always
|
||||||
always allow external sources from %1 mail en Always allow external sources from %1
|
always allow external sources from %1 mail en Always allow external sources from %1
|
||||||
|
always respond / auto-responder mail en Always respond / auto-responder
|
||||||
always show html emails mail en Always show HTML emails
|
always show html emails mail en Always show HTML emails
|
||||||
always show notifiction mail en Always show notification
|
always show notifiction mail en Always show notification
|
||||||
an error happend while trying to remove acl rights from the account %1! mail en An error happend while trying to remove ACL rights from the account %1!
|
an error happend while trying to remove acl rights from the account %1! mail en An error happend while trying to remove ACL rights from the account %1!
|
||||||
@ -218,6 +219,7 @@ error: could not send message. mail en Error: Could not send Message.
|
|||||||
error: message could not be displayed. mail en ERROR: Message could not be displayed.
|
error: message could not be displayed. mail en ERROR: Message could not be displayed.
|
||||||
esync will fail without a working email configuration! mail en eSync will FAIL without a working email configuration!
|
esync will fail without a working email configuration! mail en eSync will FAIL without a working email configuration!
|
||||||
event details follow mail en Event Details follow
|
event details follow mail en Event Details follow
|
||||||
|
every %1. day mail en Every %1. day
|
||||||
everyone mail en Everyone
|
everyone mail en Everyone
|
||||||
examine namespace to retrieve folders in others and shared mail en Examine namespace to retrieve folders in others and shared
|
examine namespace to retrieve folders in others and shared mail en Examine namespace to retrieve folders in others and shared
|
||||||
extended mail en Extended
|
extended mail en Extended
|
||||||
@ -408,6 +410,7 @@ notify when new mails arrive in these folders mail en notify when new emails arr
|
|||||||
on mail en on
|
on mail en on
|
||||||
on behalf of mail en On behalf of
|
on behalf of mail en On behalf of
|
||||||
on vacation mail en On vacation
|
on vacation mail en On vacation
|
||||||
|
once per day mail en Once per day
|
||||||
one address is not valid mail en One address is not valid
|
one address is not valid mail en One address is not valid
|
||||||
only email mail en Only email
|
only email mail en Only email
|
||||||
only if currently in an other app mail en Only if currently in an other app
|
only if currently in an other app mail en Only if currently in an other app
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<et2-description value="Resend after how many days?"></et2-description>
|
<et2-description value="Resend after how many days?"></et2-description>
|
||||||
<et2-number id="days" min="1" max="31" precision="0"></et2-number>
|
<et2-select id="days"></et2-select>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<et2-description value="Set it as default:" disabled="@is_not_admin_user"></et2-description>
|
<et2-description value="Set it as default:" disabled="@is_not_admin_user"></et2-description>
|
||||||
|
Loading…
Reference in New Issue
Block a user