initial commit of file from CVS for smeserver-vacation on Sat Sep 7 21:13:49 AEST 2024
This commit is contained in:
11
root/etc/cron.d/vacation
Normal file
11
root/etc/cron.d/vacation
Normal file
@@ -0,0 +1,11 @@
|
||||
# Check each user account if a vacation message should be enabled
|
||||
# or disabled based on the given From/To vacation dates
|
||||
# Do it shortly after midnight on every day
|
||||
#
|
||||
# Comment or edit the following line if you want to receive a status mail
|
||||
# everytime this cron script runs
|
||||
MAILTO=""
|
||||
#
|
||||
SHELL=/bin/sh
|
||||
PATH=/sbin/e-smith:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
5 0 * * * root /sbin/e-smith/vacation/check_vacation_dates.sh
|
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
if (systemctl list-unit-files |grep smanager) then
|
||||
echo "Restarting smanager"
|
||||
/sbin/e-smith/signal-event manager2-refresh;
|
||||
systemctl restart smanager
|
||||
else
|
||||
echo "Smanager not loaded"
|
||||
fi
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="bg">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Отсъствие на потребител</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Съобщение при отсъствие</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Промяна на настройките за отсъствие</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Можете да променяте съобщение на потребителя при отсъствие като щракнете на връзката от дясно на името му.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Отсъствие</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Въведете съобщение при отсъствие тук. Можете да използвате "$SUBJECT" навсякъде в текста, което ще бъде заменено с полето "относно" от съобщението, което е активирало автоматичния отговор. </p> <p> Това съобщение трябва да бъде сглобено от две част, разделени с празен ред. Първата ще бъде интегрирана в заглавната част на съобщението-отговор, и затова се уверете че сте оставили поне празен ред преди текста на съобщението. </p> <p> Основният домейн ще бъде добавен към адреса автоматично, или можете да вмъкнете виртуален домейн като замените частта за домейн на адреса на изпращача на първия ред от съобщението с виртуалния домейн (например, заменете стандартното "From: user@primary.domain" с "From: user@virtual.domain"). За да промените съобщението отново в стандартното, напишете "reset". </p> <p> Можете също да попълните полетата "Включи отсъствие от" and "Изключи отсъствие от" за да включите и изключите автоматично изпращането на съобщение за този потребител на определена дата. </p> <p> Форматът, който се използва е ГГГГММДД (четири цифри за година, две цифри за месец, две цифри за ден) и датите в двете полета не трябва да са еднакви. Ако искате да използвате тази функционалност, оставете настройката "Включи съобщение при отсъствие" на "Не" - то автоматично ще се активира на база на зададените дати. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Включи отсъствие от (ГГГГММДД)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Изключи отсъствие от (ГГГГММДД)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Съобщение за отсъствие</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Включи съобщения при отсъствие</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>От:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Няма да мога да прочета пощата си за известно време. Вашето съобщение относно $SUBJECT ще бъде прочетено, когато се завърна.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>Няма потребители в групата(ите), които сте упълномощен да управлявате.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Отг: $SUBJECT - няма достъп до пощата</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="da">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Bruger fravær</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Fraværsbesked</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Skift indstillinger for brugers fravær</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Du kan ændre en brugers fraværsbesked ved at klikke på linket til højre for deres navn.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Fravær</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Skriv en fraværsbesked her. Du kan bruge "$SUBJECT" overalt i teksten som vil blive erstattet med indholdet i emnelinjen i den e mail som har aktiveret autosvaret. </p> <p> Denne besked skal bestå af to dele, adskilt af en blank linje. Den først del vil blive integreret ind i overskriften på e mail svaret, du må derfor sikre dig, at du indsætter mindst én blank linje før du skriver din besked.</p> <p> Det primære domæne bliver automatisk tilføjet til adressen, eller du kan indsætte et virtuelt domæne ved at erstatte domæne delen i afsender adressen i den første linje med det virtuelle navn (f.eks. erstat standard "Fra: user@primære.domæne" med "Fra: bruger@virtuelt.domæne"). For at skifte fraværsbeskeden tilbage til standard, skal du skrive "reset". </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Aktiver fraværsbesked den (ååååmmdd)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Deaktiver fraværsbesked den (ååååmmdd)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Fraværsbesked</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Aktiver fraværsbesked</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Fra:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>jeg kan ikke læse mine e mail i et stykke tid. Din e-mail om $SUBJECT vil jeg først læse, når jeg kommer tilbage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>Der er ingen brugere i den gruppe du har tilladelse til at administrere.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Sv: $SUBJECT - Væk fra mine e-mail </trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="de">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Abwesenheitsnotizen</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Abwesenheitsnotiz</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Einstellungen zur Benutzerabwesenheit ändern</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Die Abwesenheitsnotiz eines Benutzers können Sie ändern, indem Sie auf den Link rechts neben dem jeweiligen Benutzernamen klicken.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Abwesenheitsnotiz</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Geben Sie eine Abwesenheitsnotiz ein. Der Parameter <b>"$SUBJECT"</b> enthält den Betreff der empfangenen E-Mail und kann an beliebiger Stelle im Text der automatischen Antwort platziert werden. </p> <p>Eine vollständige Abwesenheitsnotiz besteht aus zwei Teilen, die voneinander durch eine Leerzeile getrennt sein müssen: der gesamte Text bis zur ersten freien Zeile wird in die Kopfzeile der E-Mail-Antwort aufgenommen. Lassen Sie deshalb mindestens eine Zeile frei, bevor Sie den eigentlichen Text Ihrer Abwesenheitsnotiz eingeben. </p> <p> Die Haupt-Domäne wird der Adresse automatisch hinzugefügt. Sie können aber auch eine Adresse aus einer virtuellen Domäne verwenden, indem Sie für die Absenderadresse in der ersten Zeile der Abwesenheitsnotiz die Hauptdomäne durch eine virtuelle Domäne ersetzen (ersetzen Sie z.B. die voreingestellte Adresse: "From: benutzer@hauptdomaene.xx" durch "From: benutzer@virtuelledomaene.xx"). Um die Abwesenheitsnotiz auf den Standard-Text zurück zu setzen geben sie "reset" ein.</p><p>Sie können auch die entsprechenden Felder ausfüllen, um die Abwesenheitsnachricht für diesen Benutzer zu einem bestimmten Datum automatisch ein- und auszuschalten.</p><p>Geben Sie jeweils das entsprechende Datum im Format JJJJMMDD (vierstellige Jahreszahl, zweistellige Monatsnummer, zweistellige Tageszahl) ein. In beiden Feldern darf nicht das selbe Datum stehen. <br />Verwenden Sie für eintägige Abwesenheit das Datum des Folgetages für die Deaktivierung der Abwesenheitsnotiz. </p><p>Wenn Sie ein Datum für die automatische Aktivierung angegeben haben belassen Sie die Schaltfläche "Abwesenheitsnotiz aktivieren" auf "Nein" - die Aktivierung erfolgt automatisch am gewählten Datum.]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>automatisch aktivieren am (JJJJMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>automatisch deaktivieren am (JJJJMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Abwesenheitsnotiz</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Abwesenheitsnotiz aktivieren</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Von:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="el">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,94 @@
|
||||
<lexicon lang="en-us">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>
|
||||
You can modify a users vacation message by clicking
|
||||
on the link to the right of their name below.
|
||||
</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans> <![CDATA[
|
||||
<p>
|
||||
Enter a vacation message here. You can use "$SUBJECT"
|
||||
anywhere in the text to be replaced with the subject line
|
||||
from the email that activated the auto-reply.
|
||||
</p>
|
||||
<p>
|
||||
This message must be composed of two parts separated by a blank line.
|
||||
The first will be integrated into the headings of the email reply,
|
||||
you must thus ensure you leave at least a blank line before typing your message.
|
||||
</p>
|
||||
<p>
|
||||
The primary domain is added to the address automatically,
|
||||
or you can insert a virtual domain by replacing the domain part of the sender address
|
||||
in the first line of the message with the virtual domain name (eg. replace the default
|
||||
"From: user@primary.domain" with "From: user@virtual.domain").
|
||||
To change the vacation message back to the default type "reset".
|
||||
</p>
|
||||
<p>
|
||||
You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to
|
||||
automatically enable and disable sending of the vacation message for this user account on the given dates.
|
||||
</p>
|
||||
<p>
|
||||
The format used is YYYYMMDD (four digit year, two digit month, two digit day)
|
||||
and the dates in the two fields must not be the same.
|
||||
If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given.
|
||||
</p>
|
||||
</p>
|
||||
]]>
|
||||
</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email </trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="es">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Mensaje de Ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Cambiar configuración de ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Puede modificar el mensaje de ausencia de los usuarios haciendo click sobre el enlace a la derecha del nombre.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Mensaje de ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Habilitar ausencia</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>De:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Estoy momentáneamente ausente y ésta es una respuesta automática. Por tal motivo no podré contestar el email. En relación a su email $SUBJECT lo leeré a mi regreso.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - momentáneamente ausente</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="et">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Kasutajate automaatvastused</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Automaatvastus</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Muuda kasutaja automaatvastuse seadeid</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Sa saad muuta kasutajate automaatvastust kui klikid lingile nende nime kõrval.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Automaatvastus</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Automaatvastuse teade</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Luba automaatvastus</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Kellelt:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="fr">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Utilisateurs absents</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Message d'absence</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Modifier les messages d'absence des utilisateurs</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Vous pouvez modifier le message d'absence d'un utilisateur en cliquant sur le lien correspondant à côté de son nom.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Absent(e)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Tapez votre message d'absence ici. Vous pouvez utiliser à votre guise dans ce message le terme "$SUBJECT" : il sera remplacé dans la réponse automatique par le sujet du courriel auquel il fait référence. </p> <p> Ce message doit être composé de deux parties séparées par une ligne vide. La première sera intégrée aux en-têtes du courriel de réponse ; vous devez donc vous assurer de laisser au moins une ligne vide avant de taper votre message d'absence. </p> <p> Par défaut, l'adresse de courriel de l'utilisateur sera celle du domaine principal, mais vous pouvez la redéfinir avec un domaine virtuel en remplaçant la partie de domaine de l'adresse de l'expéditeur dans la première ligne du message, avec le nom de domaine virtuel (par exemple remplacer le défaut "From: user@primary.domain" avec "From: user@virtual.domain"). Pour revenir au message d'absence par défaut, tapez "reset". </p><p> Vous pouvez également remplir les champs "Activer le message de vacance» et «Désactiver le message de vacances afin d'activer et désactiver automatiquement l'envoi du message d'absence pour ce compte utilisateur aux dates indiquées. </p> <p> Le format utilisé est AAAAMMJJ (quatre chiffres pour l'année, deux chiffres pour le mois, deux chiffres pour le Jour) et les dates dans les deux champs ne doivent pas être les mêmes. Si vous souhaitez utiliser cette fonctionnalité, laissez la case "Activer le message de vacance" sur "Non, il sera automatiquement activé le jour de la date donnée.</p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Activer le message d'absence le (AAAAMMJJ)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Désctiver le message d'absence le (AAAAMMJJ)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Message d'absence</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Activer le message d'absence</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>De:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Je n'ai, pour l'instant, pas accès à ma messagerie. Je n'aurais connaissance qu'à mon retour de votre courriel concernant : $SUBJECT</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>Il n'y a aucun utilisateur dans le(s) groupe(s) que vous êtes autoriser à gérer.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Je suis actuellement absent(e)</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="he">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="hu">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="id">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Pesan liburan pengguna</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Pesan Liburan</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Ubah setting liburan pengguna.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Anda dapat mengubah pesan liburan dengan meng-klik pada link di sebelah kanan nama pengguna dibawah ini.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Liburan</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Pesan liburan</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable-kan pesan liburan</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Dari:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Saya tidak akan membaca email saya untuk beberapa saat. Email anda tentang $SUBJECT akan saya baca saat saya kembali.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="it">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Assenze utente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Messaggio utente assente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Modifica le impostazioni per utente assente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Il messaggio per l'utente assente può essere modificato cliccando sul link a destra del nome.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Assente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Inserire qui il messaggio utente assente. Si può utilizzare la variabile "$SUBJECT" in qualunque punto del messaggio per richiamare l'oggetto del messaggio che ha attivato l'auto-risposta. </p> <p> Il messaggio deve essere composto di due parti separate da una riga vuota. La prima parte sarà integrata nell'intestazione della risposta, perciò assicuratevi di lasciare una riga vuota prima del messaggio vero e proprio. </p> <p> Il dominio primario viene aggiunto automaticamente al messaggio, oppure è possibile inserire un dominio virtuale sostituendo la parte del dominio dell'indirizzo del mittente nella prima riga del messaggio con il nome di dominio virtuale (ad esempio, sostituire il predefinito "From: user@primary.domain" con "From: user@virtual.domain"). Per ripristinare il messaggio di utente assente al valore di default selezionare "reset". </p> <p> E' anche possibile compilare i campi "Abilita assenza il" e "Disabilita assenza il" al fine di attivare e disattivare l'invio del messaggio di assenza per questo account utente per le date indicate automaticamente. </p> <p> Il formato utilizzato è YYYYMMDD (4 numeri per l'anno (Y), due numeri per il mese (M) e due numeri per il giorno (D)) e le date nei due campi non possono essere le stesse. Se si vuole utilizzare questa funzionalità lasciare "Abilita messaggi di vacanza" impostato a "No", sarà automaticamente attivato in base alla data indicata. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Abilita messaggio utente assente il (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disabilita messaggio utente assente il (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Messagio utente assente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Abilita messaggio utente assente</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Da:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Non potrò leggere la mia posta per un po' di tempo. Il vostro messaggio con oggetto $SUBJECT verrà letto al mio ritorno.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>Non ci sono uenti nel gruppo(i) che vi è consentito gestire</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Non posso leggere la mia posta</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="ja">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="nb">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="nl">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Gebruiker afwezigheid</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Afwezigheidsbericht</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Verander gebruiker vakantie instellingen</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>U kunt een gebruikers vakantie bericht wijzigen door op de koppeling te klikken rechts naast de betreffende naam hieronder.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vakantie</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Voer uw afwezigheidsbericht hier in. U kunt "$SUBJECT" overal in de tekst gebruiken, het zal worden vervangen door de onderwerp regel van de e-mail welke deze automatische antwoord service heeft geactiveerd. </p> <p> Het bericht dient uit twee delen te bestaan, gescheiden door een lege regel. Het eerste deel wordt geïntegreerd in de kopregels van de antwoord e-mail, zorg er vervolgens voor dat er minimaal een lege regel aanwezig is voor dat het bericht wordt getypt. </p> <p> De primaire domeinnaam wordt automatisch toegevoegd aan het adres, of er kan een virtueel domein worden gebruikt door het vervangen van het domein gedeelte van het afzender adres in de eerste regel van het bericht met dit virtuele domein (bijv. de standaard "From: user@primary.domain" te vervangen door "From: user@virtual.domain"). Om het standaard afwezigheidsbericht te herstellen dient u "reset" in te typen. </ p> <p> U kunt ook de "Afwezigheids bericht aanzeten op" en "Afwezeigheids bericht uitzetten op" velden invullen om de vakantie boodschap automatisch aan en uit te zetten op de opgegegen datum's voor deze gebruikersaccount. </ p> <p> Het gebruikte formaat is JJJJMMDD (vier cijfers jaar, twee cijfers maand, twee cijfers voor de dag) en de datum in de twee velden mag niet hetzelfde zijn. Om deze functionaliteit te gebruiken, laat U de instelling "Vakantie berichten inschakelen" op "Nee" - het wordt automatisch geactiveerd op basis van de datum gegeven.</p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Afwezigheids bericht aanzetten op (JJJJMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Afwezigheids bericht uitzetten op (JJJJMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Afwezigheidsbericht</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Afwezigheidsbericht activeren</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Van:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Ik ben op het moment niet in staat uw e-mail betreffende $SUBJECT te lezen Zodra ik weer terug ben zal ik deze lezen.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>In de toegestane management groepen zijn geen gebruikers</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Afwezigheidsbericht </trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="pl">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="pt-br">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Férias do Usuário</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Mensagem de Férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Mudar as configurações de férias do usuário</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Você pode mudar a mensagem de férias de um usuário clicando no link a direita do nome na listagem abaixo.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Digite a mensagem de férias aqui. Você pode usar "$SUBJECT" em qualquer lugar do texto e será substituído pela linha de assunto do e-mail que ativou a auto-resposta. </p> <p> Esta mensagem deve ser composta de duas partes separadas por uma linha em branco. A primeira parte fará parte dos cabeçalhos do e-mail de resposta, você precisa lembrar de deixar ao menos uma linha antes de digitar sua mensagem. </p> <p> O domínio primário é adicionado ao endereço automaticamente, ou você pode inserir um domínio virtual substituindo a parte do domínio na primeira linha da mensagem com o nome do domínio virtual. (exemplo: substituir o padrão "From: usuario@dominioprimario.com" com "From: usuario@dominiovirtual.com"). Para resetar a mensagem de volta a mensagem padrão, tecle "reset" e salve. </p> <p> Você também pode preencher os campos "Habilitar férias em" e "Desabilitar férias em" para habilitar e desabilitar a mensagem de férias para este usuário nas datas fornecidas.</p> <p> O formato de data usado é AAAAMMDD (ano com quatro dígitos, mês com dois dígitos e dia com dois dias) e a data nos dois campos não pode ser a mesma. Se você quer usar essa funcionalidade, deixe "Habilitar mensagem de férias" configurado como "Não", isto será ativado automaticamente baseado nas datas fornecidas. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Habilitar mensagem de férias em (AAAAMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Desabilitar mensagem de férias em (AAAAMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Mensagem de férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Habilitar mensagens de férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Não estou lendo meu e-mail por um período. Seu e-mail com o assunto $SUBJECT será lido quando eu retornar.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>Não há usuários no(s) grupo(s) que você gerencia.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Não lendo e-mail</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="pt">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Férias do Usuário</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Mensagem de Férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Mudar as configurações de férias do usuário</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Você pode mudar a mensagem de férias de um usuário clicando no link a direita do nome na listagem abaixo.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Mensagem de férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Habilitar mensagens de férias</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Não estou lendo meu e-mail por um período. Seu e-mail com o assunto $SUBJECT será lido quando eu retornar</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="ro">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="ru">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>От:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="sl">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="sv">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Användarfrånvaro</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Frånvaromeddelande</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Ändra användares frånvaromeddelande</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Du kan ändra en användares frånvaromeddelande genom att klicka till höger om deras namn nedan.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Frånvaro</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Frånvaromeddelande</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Aktivera frånvaromeddelanden</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Från:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Jag kan inte läsa ditt e-postmeddelande på ett tag. Ditt meddelande angående $SUBJECT kommer att läsas när jag är tillbaka.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Sv: $SUBJECT - Frånvarande.</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="th">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>User vacations</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Vacation Message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Change user vacation settings</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>You can modify a users vacation message by clicking on the link to the right of their name below.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Vacation</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Vacation message</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Enable vacation messages</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>From:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="tr">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>Kuallnıcının tatil modları</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>Tatil modu mesajı</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>Kullanıcı tatil modu ayarları</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>Kullanıcıların tatil modu mesajlarını, isimlerinin sağına tıklayarak değiştirebilirsiniz.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>Tatil modu</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>Tatil modu mesajı</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>Tatil modu mesajlarını etkinleştir</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>Kimden:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>Bu yüzden e-posta mesajlarımı okuyamıyorum. $SUBJECT başlıklı mesajınızı döndüğümde okuyacağım.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - E-posta hesabımdan uzaktayım</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="zh-cn">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>用户假期</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>假日留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>更改用户休假设置</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>您可以点击用户名右边的链接修改用户的假期留言。</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>假期</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain by replacing the domain part of the sender address in the first line of the message with the virtual domain name (eg. replace the default "From: user@primary.domain" with "From: user@virtual.domain"). To change the vacation message back to the default type "reset". </p> <p> You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to automatically enable and disable sending of the vacation message for this user account on the given dates. </p> <p> The format used is YYYYMMDD (four digit year, two digit month, two digit day) and the dates in the two fields must not be the same. If you want to use this functionality, leave the "Enable vacation messages" setting at "No" - it will be automatically activated based on the date given. </p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>Enable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>Disable vacation on (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>启用假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>来自:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
@@ -0,0 +1,62 @@
|
||||
<lexicon lang="zh-tw">
|
||||
<entry>
|
||||
<base>User vacations</base>
|
||||
<trans>使用者假期</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>Vacation Message</base>
|
||||
<trans>假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FORM_TITLE</base>
|
||||
<trans>更改使用者假期設定</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>DESCRIPTION</base>
|
||||
<trans>您可以透過按下使用者右側連結改變使用者假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>LABEL_VACATION</base>
|
||||
<trans>假期</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MODIFY_DESCRIPTION</base>
|
||||
<trans><![CDATA[ <p>請於此處輸入假期訊息。您可於文字中任意使用 "$SUBJECT" 以便取代主動回覆郵件中的主旨欄。 </p> <p> 此訊息由兩部分空白行組成。前面的部分將被整合到,您必須確認輸入訊息之前至少留一空白行。</p> <p>主域名將主動加入位址,或者您亦可手動輸入虛擬網域以取代寄件訊息第一行的位址之網域部分 (例如:以 "From: user@virtual.domain"取代預設值 "From: user@primary.domain" with) 。改變假期訊息回到預設值請按"reset"。</p> <p> 您亦可位使用者帳號給定的日期填入 "允許假期" 與 "關閉假期" 區域以自動允許與關閉來寄出假期訊息。</p> <p> 使用的格式為 YYYYMMDD (4位數年,2位數月,2位數日) 而且該兩區域的日期必需不同。倘若您想使用此功能,讓 "允許假期留言" 設定為 "不要" - 它將基於給定的日期自動啟用。</p> </p> ]]></trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_FROM</base>
|
||||
<trans>允許假期 (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_TO</base>
|
||||
<trans>關閉假期 (YYYYMMDD)</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>MESSAGE</base>
|
||||
<trans>假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>VACATION_STATUS</base>
|
||||
<trans>允許假期留言</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>FROM</base>
|
||||
<trans>從:</trans>
|
||||
</entry>
|
||||
<!-- this is read into a ~/.vacation.msg verbatim
|
||||
leave a blank line after the subject line but not before,
|
||||
and don't translate $SUBJECT -->
|
||||
<entry>
|
||||
<base>AWAY_FROM_MAIL</base>
|
||||
<trans>我暫時無法讀取我的電郵。當我回來後,您的郵件 $SUBJECT 將被讀取。</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>NO_USERS_IN_GRANTED_GROUPS</base>
|
||||
<trans>There are no users in the group(s) that you are granted to manage.</trans>
|
||||
</entry>
|
||||
<entry>
|
||||
<base>ANSWER_TO_OBJECT_SENDER</base>
|
||||
<trans>Re: $SUBJECT - Away from my email</trans>
|
||||
</entry>
|
||||
|
||||
</lexicon>
|
15
root/etc/e-smith/templates-user/.qmail/49vacationMessage
Normal file
15
root/etc/e-smith/templates-user/.qmail/49vacationMessage
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
if ($qmail{FilterOrder})
|
||||
{
|
||||
|
||||
my $VacationDelay = $qmail{VacationDelay} || '';
|
||||
|
||||
if ($props{EmailVacation})
|
||||
{
|
||||
return "| /usr/local/bin/vacation -j $VacationDelay $USERNAME"
|
||||
if ($props{EmailVacation} eq 'yes');
|
||||
}
|
||||
|
||||
return '# Vacation Message not set'
|
||||
}
|
||||
}
|
18
root/etc/e-smith/templates-user/.qmail/74vacationMessage
Normal file
18
root/etc/e-smith/templates-user/.qmail/74vacationMessage
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
if ($qmail{FilterOrder})
|
||||
{
|
||||
return '# qmail FilterOrder enabled - vacation'
|
||||
}
|
||||
else
|
||||
{
|
||||
my $VacationDelay = $qmail{VacationDelay} || '';
|
||||
|
||||
if ($props{EmailVacation})
|
||||
{
|
||||
return "| /usr/local/bin/vacation -j $VacationDelay $USERNAME"
|
||||
if ($props{EmailVacation} eq 'yes');
|
||||
}
|
||||
|
||||
return '# Vacation Message not set'
|
||||
}
|
||||
}
|
72
root/etc/e-smith/web/functions/userpanel-vacation
Normal file
72
root/etc/e-smith/web/functions/userpanel-vacation
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/perl -wT
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# heading : Your Settings
|
||||
# description : Vacation Message
|
||||
# longdesc : create an autoresponse message
|
||||
# navigation : 100 600
|
||||
#
|
||||
# Copyright (c) 2001 Daniel van Raay <danielvr@caa.org.au>
|
||||
# Modified (c) 2002,2006 Stephen Noble <stephen@dungog.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# uses the FormMagick Panel for uservacations
|
||||
# but pulls username from $ENV{'REMOTE_USER'};
|
||||
# rather then being selected from a table
|
||||
#
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use esmith::FormMagick::Panel::uservacations;
|
||||
|
||||
my $fm = esmith::FormMagick::Panel::uservacations->new();
|
||||
$fm->display();
|
||||
|
||||
__DATA__
|
||||
<form title="FORM_TITLE"
|
||||
header="/etc/e-smith/web/common/head.tmpl"
|
||||
footer="/etc/e-smith/web/common/foot.tmpl">
|
||||
|
||||
<page
|
||||
name="First"
|
||||
pre-event="print_status_message()"
|
||||
post-event="userpanel_change_settings()" >
|
||||
|
||||
<description>MODIFY_DESCRIPTION</description>
|
||||
|
||||
<field type="literal" id="User" value="get_panel_user()">
|
||||
<label>ACCOUNT</label>
|
||||
</field>
|
||||
|
||||
<field type="literal" id="FullName" value="get_full_name()">
|
||||
<label>USER_NAME</label>
|
||||
</field>
|
||||
|
||||
<field type="text" id="EmailVacationFrom" value="get_vacation_date_from()">
|
||||
<label>VACATION_FROM</label>
|
||||
</field>
|
||||
|
||||
<field type="text" id="EmailVacationTo" value="get_vacation_date_to()">
|
||||
<label>VACATION_TO</label>
|
||||
</field>
|
||||
|
||||
<subroutine src="userpanel_get_vacation_text()" />
|
||||
|
||||
<field
|
||||
type="select"
|
||||
id="EmailVacation"
|
||||
options="'no' => 'NO', 'yes' => 'YES'"
|
||||
value="get_vacation_status()">
|
||||
<label>VACATION_STATUS</label>
|
||||
</field>
|
||||
|
||||
<subroutine src="print_button('SAVE')" />
|
||||
</page>
|
||||
|
||||
</form>
|
79
root/etc/e-smith/web/functions/uservacations
Normal file
79
root/etc/e-smith/web/functions/uservacations
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/perl -wT
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# heading : Collaboration
|
||||
# description : User vacations
|
||||
# navigation : 3000 3150
|
||||
#
|
||||
# Copyright (c) 2001 Daniel van Raay <danielvr@caa.org.au>
|
||||
# Modified (c) 2002,2006 Stephen Noble <stephen@dungog.net>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use esmith::FormMagick::Panel::uservacations;
|
||||
|
||||
my $fm = esmith::FormMagick::Panel::uservacations->new();
|
||||
$fm->display();
|
||||
|
||||
__DATA__
|
||||
<form title="FORM_TITLE"
|
||||
header="/etc/e-smith/web/common/head.tmpl"
|
||||
footer="/etc/e-smith/web/common/foot.tmpl">
|
||||
|
||||
<page
|
||||
name="First"
|
||||
pre-event="print_status_message()">
|
||||
|
||||
<!-- <field type="literal" display="user_accounts_exist()" >
|
||||
<label>DESCRIPTION</label>
|
||||
</field> -->
|
||||
|
||||
<subroutine src="user_accounts_exist()" />
|
||||
<subroutine src="print_vacation_table" />
|
||||
</page>
|
||||
|
||||
<page
|
||||
name="VACATION_PAGE_MODIFY"
|
||||
pre-event="turn_off_buttons()"
|
||||
post-event="change_settings()" >
|
||||
|
||||
<description>MODIFY_DESCRIPTION</description>
|
||||
|
||||
<field type="literal" id="User" >
|
||||
<label>ACCOUNT</label>
|
||||
</field>
|
||||
|
||||
<field type="literal" id="FullName">
|
||||
<label>USER_NAME</label>
|
||||
</field>
|
||||
|
||||
<field type="text" id="EmailVacationFrom">
|
||||
<label>VACATION_FROM</label>
|
||||
</field>
|
||||
|
||||
<field type="text" id="EmailVacationTo">
|
||||
<label>VACATION_TO</label>
|
||||
</field>
|
||||
|
||||
<subroutine src="get_vacation_text()" />
|
||||
|
||||
<field
|
||||
type="select"
|
||||
id="EmailVacation"
|
||||
options="'no' => 'NO', 'yes' => 'YES'"
|
||||
value="EmailVacation">
|
||||
<label>VACATION_STATUS</label>
|
||||
</field>
|
||||
|
||||
<subroutine src="print_button('SAVE')" />
|
||||
</page>
|
||||
|
||||
</form>
|
39
root/sbin/e-smith/vacation/check_vacation_dates.sh
Normal file
39
root/sbin/e-smith/vacation/check_vacation_dates.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
CURRENT_DATE=`date +%Y%m%d`
|
||||
|
||||
echo "Checking vacation changes on $CURRENT_DATE"
|
||||
|
||||
# iterate over users
|
||||
for key in `db accounts keys`
|
||||
do
|
||||
if [ `db accounts gettype $key` == "user" ]
|
||||
then
|
||||
# check for EmailVacationProperty
|
||||
if [ -z `db accounts getprop $key EmailVacation` ]
|
||||
then
|
||||
echo "$key never went on vacation before."
|
||||
|
||||
# if both fields are empty or contain the same value, do nothing
|
||||
elif [ `db accounts getprop $key EmailVacationFrom` == `db accounts getprop $key EmailVacationTo` ]
|
||||
then
|
||||
echo "Both fields empty or same date, not changing anything for $key"
|
||||
# db accounts setprop $key EmailVacation no
|
||||
|
||||
elif [ `db accounts getprop $key EmailVacationFrom` == $CURRENT_DATE ]
|
||||
then
|
||||
echo "Happy holidays, $key"
|
||||
db accounts setprop $key EmailVacation yes
|
||||
/etc/e-smith/events/actions/qmail-update-user event $key
|
||||
|
||||
elif [ `db accounts getprop $key EmailVacationTo` == $CURRENT_DATE ]
|
||||
then
|
||||
echo "Back to work, $key"
|
||||
db accounts setprop $key EmailVacation no
|
||||
/etc/e-smith/events/actions/qmail-update-user event $key
|
||||
|
||||
else
|
||||
echo "Nothing to do for $key"
|
||||
|
||||
fi
|
||||
fi
|
||||
done
|
511
root/usr/local/bin/vacation
Normal file
511
root/usr/local/bin/vacation
Normal file
@@ -0,0 +1,511 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# $Id: vacation.pl,v 1.3 1999/01/04 04:28:17 psamuel Exp $
|
||||
#
|
||||
# Vacation program for qmail. Based on the original version for
|
||||
# sendmail by Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> and Tom
|
||||
# Christiansen <tchrist@convex.com>.
|
||||
#
|
||||
# The original is available from CPAN as
|
||||
#
|
||||
# CPAN/scripts/mailstuff/vacation
|
||||
#
|
||||
# This version by Peter Samuel <peter@uniq.com.au>
|
||||
#
|
||||
# Minor changes by Daniel van Raay <danielvr@caa.org.au>
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
|
||||
use DB_File;
|
||||
require 5;
|
||||
$check_to_and_cc = 1;
|
||||
$dot_vacation_prefix = "";
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# Process any command line arguments.
|
||||
|
||||
while ($ARGV[0] =~ /^-/)
|
||||
{
|
||||
$_ = shift;
|
||||
|
||||
if (/^-I/i)
|
||||
{
|
||||
&initialise();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (/^-n/)
|
||||
{
|
||||
$no_msg_no_reply = 1;
|
||||
}
|
||||
|
||||
if (/^-j/)
|
||||
{
|
||||
$check_to_and_cc = 0;
|
||||
}
|
||||
|
||||
if (/^-s/)
|
||||
{
|
||||
chdir;
|
||||
&get_user_details();
|
||||
&show_dbm_file("$dbm_file");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (/^-t([\d.]*)([smhdw])/)
|
||||
{
|
||||
&time_scales();
|
||||
$timeout = $1;
|
||||
$timeout *= $scale{$2} if $2;
|
||||
}
|
||||
|
||||
if (/^-p*/)
|
||||
{
|
||||
$dot_vacation_prefix = $1;
|
||||
}
|
||||
}
|
||||
|
||||
&interactive() if (! scalar @ARGV);
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# Process incoming mail. Qmail provides a number of environment
|
||||
# variables that detail the properties of the incoming mail message.
|
||||
|
||||
# Qmail always supplies $DTLINE. If it isn't set then we probably
|
||||
# aren't being called by qmail.
|
||||
exit(0) unless $ENV{'DTLINE'};
|
||||
|
||||
$rpline = $ENV{'RPLINE'};
|
||||
$ufline = $ENV{'UFLINE'};
|
||||
exit(0) if ($ufline =~ /-REQUEST\@/i);
|
||||
exit(0) if ($rpline =~ /-REQUEST\@/i);
|
||||
|
||||
$home = $ENV{'HOME'};
|
||||
$host = lc($ENV{'HOST'});
|
||||
$sender = lc($ENV{'SENDER'});
|
||||
$user = lc($ENV{'USER'});
|
||||
|
||||
$timeout = 60 * 60 * 24 * 7 unless $timeout;
|
||||
|
||||
chdir;
|
||||
&get_program_details();
|
||||
&check_ignores();
|
||||
&check_headers();
|
||||
&check_lastdate("$dbm_file");
|
||||
&send_reply();
|
||||
exit(0);
|
||||
|
||||
###########################################################################
|
||||
|
||||
sub interactive
|
||||
{
|
||||
chdir;
|
||||
&get_user_details();
|
||||
|
||||
if (-f "$dot_qmail_file")
|
||||
{
|
||||
print
|
||||
"You have a $dot_qmail_file in your home directory containing:\n\n";
|
||||
|
||||
&cat_file("$dot_qmail_file");
|
||||
|
||||
print "\n";
|
||||
|
||||
print "Would you like to remove it and disable the vacation feature?";
|
||||
|
||||
if (&yesno())
|
||||
{
|
||||
&delete_qmail_file("$dot_qmail_file");
|
||||
&show_dbm_file("$dbm_file");
|
||||
&clear_dbm_file("$dbm_file");
|
||||
print "\nBack to normal reception of mail.\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
print << "EOF";
|
||||
Mail is still under the control of your $dot_qmail_file file.
|
||||
EOF
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
print << "EOF";
|
||||
This program can be used to answer your mail automatically
|
||||
when you go away on vacation.
|
||||
|
||||
EOF
|
||||
|
||||
if (-f "$message_file")
|
||||
{
|
||||
print "You already have a message file in $home/$message_file.\n";
|
||||
|
||||
if (&yesno("Would you like to see it?"))
|
||||
{
|
||||
&show_file("$message_file");
|
||||
}
|
||||
|
||||
if (&yesno("Would you like to edit it?"))
|
||||
{
|
||||
&edit_file("$message_file");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
&create_msg_file("$message_file", "$vacation_msg");
|
||||
|
||||
print << "EOF";
|
||||
A default vacation message has been created in $home/$message_file.
|
||||
This message will be automatically returned to anyone sending you mail
|
||||
while you're away.
|
||||
|
||||
EOF
|
||||
|
||||
if (&yesno("Would you like to see it?"))
|
||||
{
|
||||
&show_file("$message_file");
|
||||
}
|
||||
|
||||
if (&yesno("Would you like to edit it?"))
|
||||
{
|
||||
&edit_file("$message_file");
|
||||
}
|
||||
}
|
||||
|
||||
print << "EOF";
|
||||
|
||||
To enable the vacation feature a $home/$dot_qmail_file file is created.
|
||||
EOF
|
||||
|
||||
if (&yesno("Would you like to enable the vacation feature now?"))
|
||||
{
|
||||
&create_qmail_file("$dot_qmail_file", "$dot_qmail_commands");
|
||||
&clear_dbm_file("$dbm_file");
|
||||
|
||||
print << "EOF";
|
||||
|
||||
The vacation feature has been enabled. Please remember to turn it off
|
||||
when you return. Bon voyage!
|
||||
EOF
|
||||
}
|
||||
else
|
||||
{
|
||||
print "\nThe vaction feature has not been enabled.\n";
|
||||
}
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
sub initialise
|
||||
{
|
||||
chdir;
|
||||
&get_user_details();
|
||||
&clear_dbm_file("$dbm_file");
|
||||
&create_msg_file("$message_file", "$vacation_msg");
|
||||
&create_qmail_file("$dot_qmail_file", "$dot_qmail_commands");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
sub edit_file
|
||||
{
|
||||
my($file) = @_;
|
||||
|
||||
system("$editor $file");
|
||||
}
|
||||
|
||||
sub cat_file
|
||||
{
|
||||
my($file) = @_;
|
||||
|
||||
open(FILE, "$file");
|
||||
print while(<FILE>);
|
||||
close(FILE);
|
||||
}
|
||||
|
||||
sub show_file
|
||||
{
|
||||
my($file) = @_;
|
||||
|
||||
system("$pager $file");
|
||||
}
|
||||
|
||||
sub show_dbm_file
|
||||
{
|
||||
my($file) = @_;
|
||||
local(%DBM); # Can't be my()
|
||||
my($key);
|
||||
require "ctime.pl";
|
||||
|
||||
open(PAGER, "| $pager");
|
||||
|
||||
print PAGER << "EOF";
|
||||
Welcome back!
|
||||
While you were away, vacation mail was sent to the following addresses:
|
||||
|
||||
EOF
|
||||
|
||||
dbmopen(%DBM, "$file", 0644);
|
||||
|
||||
foreach $key (sort keys %DBM)
|
||||
{
|
||||
print PAGER "$key\n";
|
||||
print PAGER " ", ctime(unpack("L", $DBM{$key}));
|
||||
}
|
||||
|
||||
dbmclose(%DBM);
|
||||
close(PAGER);
|
||||
}
|
||||
|
||||
sub clear_dbm_file
|
||||
{
|
||||
my($file) = @_;
|
||||
local(%DBM); # Can't be my()
|
||||
|
||||
dbmopen(%DBM, "$file", 0644);
|
||||
|
||||
undef %DBM;
|
||||
|
||||
dbmclose(%DBM);
|
||||
}
|
||||
|
||||
sub create_msg_file
|
||||
{
|
||||
my($file, $msg) = @_;
|
||||
|
||||
open(MSG, "> $file");
|
||||
|
||||
print MSG $msg;
|
||||
close(MSG);
|
||||
chmod(0644, $file);
|
||||
}
|
||||
|
||||
sub create_qmail_file
|
||||
{
|
||||
my($file, $msg) = @_;
|
||||
|
||||
open(MSG, "> $file");
|
||||
|
||||
print MSG $msg;
|
||||
close(MSG);
|
||||
chmod(0644, $file);
|
||||
}
|
||||
|
||||
sub delete_qmail_file
|
||||
{
|
||||
my($file) = @_;
|
||||
|
||||
unlink("$file");
|
||||
}
|
||||
|
||||
sub yesno
|
||||
{
|
||||
my($msg) = @_;
|
||||
my($answer);
|
||||
|
||||
while (1)
|
||||
{
|
||||
print "$msg [y/n] ";
|
||||
$answer = <STDIN>;
|
||||
last if $answer =~ /^[yn]/i;
|
||||
}
|
||||
|
||||
$answer =~ /^y/i;
|
||||
}
|
||||
|
||||
sub get_common_details
|
||||
{
|
||||
$message_file = $dot_vacation_prefix . ".vacation.msg";
|
||||
$dbm_file = $dot_vacation_prefix . ".vacation";
|
||||
|
||||
$vacation_msg = << 'EOF'; # Must use single quotes
|
||||
Subject: away from my mail
|
||||
|
||||
I will not be reading my mail for a while. Your mail regarding
|
||||
|
||||
"$SUBJECT"
|
||||
|
||||
will be read when I return.
|
||||
EOF
|
||||
}
|
||||
|
||||
sub get_program_details
|
||||
{
|
||||
&get_common_details();
|
||||
|
||||
$mailprog = "/var/qmail/bin/datemail -t";
|
||||
$aliases = $dot_vacation_prefix . ".vacation.aliases";
|
||||
$noreply = $dot_vacation_prefix . ".vacation.noreply";
|
||||
}
|
||||
|
||||
sub get_user_details
|
||||
{
|
||||
&get_common_details();
|
||||
|
||||
$user = $ENV{'USER'} || $ENV{'LOGNAME'} || getlogin || (getpwuid($>))[0];
|
||||
$dot_qmail_file = ".qmail";
|
||||
$editor = $ENV{'VISUAL'} || $ENV{'EDITOR'} || 'vi';
|
||||
$home = (getpwnam($user))[7];
|
||||
$mailbox = "$home/Maildir/";
|
||||
$pager = $ENV{'PAGER'} || 'less';
|
||||
$vacation = "/usr/local/bin/vacation";
|
||||
|
||||
$dot_qmail_commands = << "EOF"; # Must use double quotes
|
||||
| $vacation $user
|
||||
$mailbox
|
||||
EOF
|
||||
}
|
||||
|
||||
sub time_scales
|
||||
{
|
||||
%scale =
|
||||
(
|
||||
's', 1,
|
||||
'm', 60,
|
||||
'h', 60 * 60,
|
||||
'd', 60 * 60 * 24,
|
||||
'w', 60 * 60 * 24 * 7,
|
||||
);
|
||||
}
|
||||
|
||||
sub check_ignores
|
||||
{
|
||||
&get_aliases();
|
||||
push(@ignores, @aliases);
|
||||
|
||||
push(@ignores,
|
||||
'daemon',
|
||||
'postmaster',
|
||||
'mailer-daemon',
|
||||
'mailer',
|
||||
'root',
|
||||
'',
|
||||
);
|
||||
|
||||
if (-f "$noreply")
|
||||
{
|
||||
open(NOREPLY, "$noreply");
|
||||
|
||||
while(<NOREPLY>)
|
||||
{
|
||||
chomp;
|
||||
next if (/^\s*#|^$/);
|
||||
push(@ignores, lc($_));
|
||||
}
|
||||
|
||||
close(NOREPLY);
|
||||
}
|
||||
|
||||
for (@ignores)
|
||||
{
|
||||
exit(0) if ($sender eq $_);
|
||||
exit(0) if ($sender =~ /^$_\@/);
|
||||
}
|
||||
}
|
||||
|
||||
sub check_headers
|
||||
{
|
||||
my($header);
|
||||
|
||||
$/ = ''; # Read in paragraph mode
|
||||
|
||||
$header = <STDIN>;
|
||||
$header =~ s/\n\s+/ /g; # Join continuation lines
|
||||
|
||||
exit(0) if ($header =~ /^Precedence:\s+(bulk|junk|list)/im);
|
||||
exit(0) if ($header =~ /^From.*-REQUEST\@/im);
|
||||
exit(0) if ($header =~ /^Mailing-List:/im);
|
||||
exit(0) if ($header =~ /^X-Spam-Status:\s+Yes/im);
|
||||
|
||||
if ($check_to_and_cc)
|
||||
{
|
||||
($to) = ($header =~ /To:\s+(.*)/im);
|
||||
($cc) = ($header =~ /Cc:\s+(.*)/im);
|
||||
$to .= ', ' . $cc if $cc;
|
||||
$to = lc($to);
|
||||
|
||||
for (@aliases)
|
||||
{
|
||||
++$alias_match if $to =~ /\b$_\b/im;
|
||||
}
|
||||
|
||||
exit(0) unless $alias_match;
|
||||
}
|
||||
|
||||
($subject) = ($header =~ /^Subject:\s+(.*)/im);
|
||||
$subject =~ s/\s*$//m; # Remove trailing spaces
|
||||
|
||||
$subject = "(No subject)" unless $subject;
|
||||
}
|
||||
|
||||
sub get_aliases
|
||||
{
|
||||
@aliases =
|
||||
(
|
||||
"$user\@$host",
|
||||
);
|
||||
|
||||
if (-f "$aliases")
|
||||
{
|
||||
open(ALIASES, "$aliases");
|
||||
|
||||
while(<ALIASES>)
|
||||
{
|
||||
chomp;
|
||||
next if (/^\s*#|^$/);
|
||||
push(@aliases, lc($_));
|
||||
}
|
||||
|
||||
close(ALIASES);
|
||||
}
|
||||
}
|
||||
|
||||
sub check_lastdate
|
||||
{
|
||||
my($file) = @_;
|
||||
|
||||
dbmopen(%DBM, "$file", 0644);
|
||||
|
||||
$now = time;
|
||||
$then = unpack("L", $DBM{"$sender"});
|
||||
|
||||
exit(0) if (($now - $then) <= $timeout);
|
||||
|
||||
$DBM{$sender} = pack("L", $now);
|
||||
close(%DBM);
|
||||
}
|
||||
|
||||
sub send_reply()
|
||||
{
|
||||
if (-f "$message_file")
|
||||
{
|
||||
open(MSG, "$message_file");
|
||||
undef $/; # Read in the entire file
|
||||
$vacation_msg = <MSG>;
|
||||
close(MSG);
|
||||
}
|
||||
else
|
||||
{
|
||||
# Do not generate a reply if the user doesn't have a message file
|
||||
# and -n was supplied on the command line.
|
||||
|
||||
exit(0) if ($no_msg_no_reply);
|
||||
}
|
||||
|
||||
my $type = ($vacation_msg =~ m/<html/ && $vacation_msg =~ m/<\/html>/ ) ? 'html':'plain';
|
||||
|
||||
$vacation_msg =~ s/\$SUBJECT/$subject/g;
|
||||
|
||||
open(MAILPROG, "| $mailprog");
|
||||
|
||||
print MAILPROG << "EOF";
|
||||
To: $sender
|
||||
Precedence: junk
|
||||
Content-Type: text/$type; charset="UTF-8"
|
||||
EOF
|
||||
|
||||
print MAILPROG $vacation_msg;
|
||||
|
||||
close(MAILPROG);
|
||||
}
|
585
root/usr/local/man/man1/vacation.1
Normal file
585
root/usr/local/man/man1/vacation.1
Normal file
@@ -0,0 +1,585 @@
|
||||
.\"
|
||||
.\" $Id: vacation.1,v 1.3 1999/01/04 04:28:02 psamuel Exp $
|
||||
.\"
|
||||
.TH vacation 1 "23 Sep 1998"
|
||||
.SH NAME
|
||||
vacation \- reply to mail automatically
|
||||
.SH SYNOPSIS
|
||||
.B vacation
|
||||
.br
|
||||
.B vacation
|
||||
.RI [ -I ]
|
||||
.br
|
||||
.B vacation
|
||||
.RI [ -s ]
|
||||
.br
|
||||
.B vacation
|
||||
.RI [ -j ]
|
||||
.RI [ -n ]
|
||||
.RI [ -tN ]
|
||||
.I username
|
||||
.SH DESCRIPTION
|
||||
.B vacation
|
||||
automatically replies to incoming mail. This version of
|
||||
.B vacation
|
||||
has been specifically tailored for use with a
|
||||
.B qmail
|
||||
mail transport agent. It will almost certainly fail if used with a
|
||||
different mail transport agent.
|
||||
.SH USAGE
|
||||
.SS Preparing to go away on vacation
|
||||
.LP
|
||||
Run
|
||||
.B vacation
|
||||
without any command line arguments.
|
||||
.LP
|
||||
The first time you run
|
||||
.BR vacation ,
|
||||
a default reply message will be created in
|
||||
.BR ~/.vacation.msg .
|
||||
If this file already exists, it will not be overwritten. You'll be
|
||||
given the opportunity to see the contents of this file as well as the
|
||||
chance to edit it to make your own changes.
|
||||
.LP
|
||||
Once you are satisfied with the contents of the reply message,
|
||||
you will be asked if you would like to enable
|
||||
.BR vacation .
|
||||
.LP
|
||||
If you answer
|
||||
.IR yes ,
|
||||
a default
|
||||
.B ~/.qmail
|
||||
file will be created. The contents of this file are:
|
||||
|
||||
.in 2i
|
||||
| /usr/local/bin/vacation \fIusername\fP
|
||||
.br
|
||||
$home/Maildir/
|
||||
.in
|
||||
|
||||
(If you see an environment variable above - such as
|
||||
.I $home
|
||||
or
|
||||
.I $user
|
||||
- it will be expanded to its correct value during
|
||||
.B vacation's
|
||||
setup phase).
|
||||
.LP
|
||||
These instructions tell the
|
||||
.B qmail-local
|
||||
mail delivery agent to send an automatic reply to the sender of the
|
||||
message and to save a copy of the message in your default mailbox.
|
||||
.LP
|
||||
Answering
|
||||
.I yes
|
||||
also instructs
|
||||
.B vacation
|
||||
to initialise the
|
||||
.I dbm
|
||||
database file(s). The
|
||||
.I dbm
|
||||
database file(s) will contain details of who was sent an automatic
|
||||
reply and when it was sent. If the
|
||||
.I dbm
|
||||
database file(s) already exist, the contents will be cleared.
|
||||
.LP
|
||||
If you answer
|
||||
.I no
|
||||
when asked if you wish to enable
|
||||
.BR vacation ,
|
||||
neither the
|
||||
.B ~/.qmail
|
||||
nor the
|
||||
.I dbm
|
||||
database file(s) will be created.
|
||||
.SS Returning from vacation
|
||||
Run
|
||||
.B vacation
|
||||
without any command line arguments.
|
||||
.LP
|
||||
.B vacation
|
||||
displays the contents of your
|
||||
.B ~/.qmail
|
||||
file and asks if you would like to remove the file, thereby disabling
|
||||
.BR vacation .
|
||||
.LP
|
||||
If you answer
|
||||
.IR yes ,
|
||||
your
|
||||
.B ~/.qmail
|
||||
file will be removed.
|
||||
.B vacation
|
||||
will then display the contents of the
|
||||
.I dbm
|
||||
database, listing the mail addresses of those who were sent an
|
||||
automatic reply to their mail while you were away and the date on which
|
||||
the automatic reply was sent. The
|
||||
.I dbm
|
||||
database will then be cleared.
|
||||
.LP
|
||||
If you answer
|
||||
.IR no ,
|
||||
your
|
||||
.B ~/.qmail
|
||||
file will not be removed and the contents of the
|
||||
.I dbm
|
||||
database will remain unchanged.
|
||||
|
||||
.SS Processing incoming mail
|
||||
When not in setup mode,
|
||||
.B vacation
|
||||
reads an incoming mail message from standard input and automatically
|
||||
sends a reply message to the sender. The reply text is taken from
|
||||
.BR ~/.vacation.msg .
|
||||
If this file does not exist, a default message will be used.
|
||||
|
||||
.B vacation
|
||||
will
|
||||
.I not
|
||||
generate a reply if any of the following conditions are met:
|
||||
.TP
|
||||
.B -
|
||||
The sender address includes the string
|
||||
.BR -REQUEST@ .
|
||||
.TP
|
||||
.B -
|
||||
The sender is you.
|
||||
.TP
|
||||
.B -
|
||||
The sender's name is any of:
|
||||
.in 2i
|
||||
daemon
|
||||
.br
|
||||
postmaster
|
||||
.br
|
||||
mailer-daemon
|
||||
.br
|
||||
mailer
|
||||
.br
|
||||
root
|
||||
.in
|
||||
.TP
|
||||
.B -
|
||||
The sender matches any of the mail addresses listed in the optional
|
||||
files
|
||||
.B ~/.vacation.aliases
|
||||
and
|
||||
.BR ~/.vacation.noreply .
|
||||
See the
|
||||
.B FILES
|
||||
section below for more details on these files.
|
||||
.TP
|
||||
.B -
|
||||
There is a
|
||||
.B Precedence: bulk
|
||||
or
|
||||
.B Precedence: junk
|
||||
header.
|
||||
.TP
|
||||
.B -
|
||||
There is a
|
||||
.B Mailing-List:
|
||||
header.
|
||||
.TP
|
||||
.B -
|
||||
Your mail address, or any address you have listed in the optional
|
||||
.B ~/.vacation.aliases
|
||||
file does
|
||||
.I not
|
||||
appear in either the
|
||||
.B To:
|
||||
or
|
||||
.B Cc:
|
||||
headers. This feature can be disabled using the
|
||||
.B -j
|
||||
option. See the
|
||||
.B OPTIONS
|
||||
section below for more details on this option.
|
||||
.TP
|
||||
.B -
|
||||
An automatic reply has already been sent to the same address during
|
||||
the last week. The timeout value may be changed using the
|
||||
.B -t
|
||||
option. See the
|
||||
.B OPTIONS
|
||||
section below for more details on this option.
|
||||
.TP
|
||||
.B -
|
||||
.B -n
|
||||
was specified on the command line and the user does not have a
|
||||
.B ~/.vacation.msg
|
||||
file.
|
||||
.SH OPTIONS
|
||||
.TP 10
|
||||
.I none
|
||||
If no command line options are provided,
|
||||
.B vacation
|
||||
will run as an interactive setup program. If you do not have a
|
||||
.B ~/.qmail
|
||||
file,
|
||||
.B vacation
|
||||
will assume you wish to enable its services. If you have a
|
||||
.B ~/.qmail
|
||||
file,
|
||||
.B vacation
|
||||
will assume you wish to disable its services.
|
||||
.TP 10
|
||||
.B -I
|
||||
Hands free initialisation.
|
||||
.B vacation
|
||||
will create your
|
||||
.BR ~/.qmail ,
|
||||
.B ~/.vacation.msg
|
||||
and
|
||||
.I dbm
|
||||
database files. If
|
||||
.I any
|
||||
of these files already exist, their contents will be replaced by the
|
||||
.B vacation
|
||||
defaults.
|
||||
.B vacation
|
||||
will exit after the initialisation process, regardless of any other
|
||||
command line options provided.
|
||||
.TP 10
|
||||
.B -s
|
||||
Show the contents of the
|
||||
.I dbm
|
||||
database. The contents will not be cleared and your
|
||||
.B ~/.qmail
|
||||
and
|
||||
.B ~/.vacation.msg
|
||||
files will remain intact.
|
||||
.B vacation
|
||||
will exit after displaying the contents of the
|
||||
.I dbm
|
||||
database, regardless of any other command line options provided.
|
||||
.TP 10
|
||||
.B -j
|
||||
Do not examine the incoming message
|
||||
.B To:
|
||||
or
|
||||
.B Cc:
|
||||
headers to determine if the message was sent directly to you rather
|
||||
than an alias. Using this option means that mail sent to an alias of
|
||||
which you are a member may generate an automatic reply. This option is
|
||||
only useful when specified in the
|
||||
.B ~/.qmail
|
||||
file.
|
||||
.TP 10
|
||||
.B -n
|
||||
Do not generate a reply message if the user's
|
||||
.B ~/.vacation.msg
|
||||
does not exist. Updates to the
|
||||
.I dbm
|
||||
database will still be performed. This option is for those users who
|
||||
wish to quickly disable
|
||||
.B vacation
|
||||
by removing their
|
||||
.B ~/.vacation.msg
|
||||
file. It can also be used at sites where users do not have shell
|
||||
accounts but can remove their own files via ftp or perhaps a purpose
|
||||
built web interface.
|
||||
.TP 10
|
||||
.BI -t N
|
||||
Change the interval between repeat replies to the same sender. The
|
||||
default is 1 week. A trailing
|
||||
.BR s ,
|
||||
.BR m ,
|
||||
.BR h ,
|
||||
.BR d ,
|
||||
or
|
||||
.B w
|
||||
scales the number
|
||||
.I N
|
||||
to seconds, minutes, hours, days or weeks respectively. For example, to
|
||||
set the interval value to 3 days you would specify
|
||||
.B -t3d.
|
||||
There should be
|
||||
.I no
|
||||
spaces between the
|
||||
.B -t
|
||||
and
|
||||
.IR N .
|
||||
This option is only useful when specified in the
|
||||
.B ~/.qmail
|
||||
file.
|
||||
.TP 10
|
||||
.I username
|
||||
Your login name. When
|
||||
.B vacation
|
||||
sees this argument it will examine standard input for an incoming mail
|
||||
message. The value of this argument is not actually used by this
|
||||
implementation of
|
||||
.B vacation
|
||||
as your login name is provided by a
|
||||
.B qmail
|
||||
environment variable. However an argument
|
||||
.I must
|
||||
be supplied so that
|
||||
.B vacation
|
||||
knows when to process incoming mail and when to provide an interactive
|
||||
setup session. Using your login name for this argument simply maintains
|
||||
a look and feel similar to the
|
||||
.B sendmail
|
||||
version of
|
||||
.BR vacation .
|
||||
.SH ENVIRONMENT
|
||||
.LP
|
||||
If the environment variable
|
||||
.B $VISUAL
|
||||
is set and is not null, its value determines the editor used to edit
|
||||
the
|
||||
.BR ~/.vacation.msg .
|
||||
If
|
||||
.B $VISUAL
|
||||
is not set or its value is null, the environment variable
|
||||
.B $EDITOR
|
||||
is examined. If it is set and is not null, its value determines the
|
||||
editor to be used. If
|
||||
.B $EDITOR
|
||||
is not set or its value is null, the default editor
|
||||
.B vi
|
||||
will be used.
|
||||
.LP
|
||||
If the environment variable
|
||||
.B $PAGER
|
||||
is set and is not null, its value determines the page viewing program
|
||||
to be used to display the
|
||||
.B ~/.vacation.msg
|
||||
and the contents of the
|
||||
.I dbm
|
||||
database. If it is not set or its value is null, the default page
|
||||
viewer
|
||||
.B less
|
||||
will be used.
|
||||
.SH FILES
|
||||
.TP 10
|
||||
.B ~/.vacation.msg
|
||||
Contains the text of the automatic reply message. It should
|
||||
.I not
|
||||
contain any
|
||||
.B From:
|
||||
or
|
||||
.B To:
|
||||
headers. If the string
|
||||
.B $SUBJECT
|
||||
appears in
|
||||
.BR ~/.vacation.msg ,
|
||||
it will be replaced with the subject of the original message. The
|
||||
default message is:
|
||||
|
||||
.in 2i
|
||||
Subject: away from my mail
|
||||
|
||||
I will not be reading my mail for a while. Your mail regarding
|
||||
|
||||
"$SUBJECT"
|
||||
|
||||
will be read when I return.
|
||||
.in
|
||||
.TP 10
|
||||
.B ~/.qmail
|
||||
Contains the delivery instructions for
|
||||
the local mail delivery agent,
|
||||
.BR qmail-local .
|
||||
The default contents of this file are:
|
||||
|
||||
.in 2i
|
||||
| /usr/local/bin/vacation \fIusername\fP
|
||||
.br
|
||||
$home/Maildir/
|
||||
.in
|
||||
|
||||
(If you see an environment variable above - such as
|
||||
.I $home
|
||||
or
|
||||
.I $user
|
||||
- it will be expanded to its correct value during
|
||||
.B vacation's
|
||||
setup phase).
|
||||
|
||||
The first line instructs
|
||||
.B qmail-local
|
||||
to generate an automatic reply and the second line instructs
|
||||
.B qmail-local
|
||||
to save the incoming message in your default mailbox. Failure to
|
||||
include this line will result in automatic replies being generated but
|
||||
.I no
|
||||
mail will be saved in your default Mailbox.
|
||||
.TP 10
|
||||
.B ~/.vacation.*
|
||||
The
|
||||
.I dbm
|
||||
database file(s) used to store sender mail addresses and time stamps.
|
||||
The actual name of this file, or files, depends on the implementation
|
||||
of
|
||||
.B Perl
|
||||
you have at your site. Possibilities include
|
||||
.B ~/.vacation.pag
|
||||
and
|
||||
.B ~/.vacation.dir
|
||||
or
|
||||
.BR ~/.vacation.db .
|
||||
The actual names are unimportant as
|
||||
.B Perl
|
||||
deals with them internally.
|
||||
.TP 10
|
||||
.B ~/.vacation.aliases
|
||||
This optional file contains a list of mail addresses, one per line.
|
||||
Each address should be a fully qualified alias for yourself. This file
|
||||
serves two purposes.
|
||||
|
||||
Unless started
|
||||
with the
|
||||
.B -j
|
||||
option,
|
||||
.B vacation
|
||||
examines the incoming message
|
||||
.B To:
|
||||
and
|
||||
.B Cc:
|
||||
headers. If your mail address, or any of the mail addresses specified
|
||||
in
|
||||
.BR ~/.vacation.aliases ,
|
||||
match any of the addresses in these headers, an automatic reply will
|
||||
be generated for the message. If there is no match, an automatic reply
|
||||
will not be generated. This restricts
|
||||
.B vacation
|
||||
to replying to mail explicitly addressed to you or any of your
|
||||
aliases.
|
||||
|
||||
The second purpose is to avoid sending an automatic reply to any
|
||||
incoming mail from yourself or one of your aliases - you already know
|
||||
you're on vacation!
|
||||
|
||||
Lines beginning with a
|
||||
.I #
|
||||
character and blank lines will be ignored.
|
||||
.TP 10
|
||||
.B ~/.vacation.noreply
|
||||
This file contains a list of mail addresses, one per line. If an
|
||||
incoming mail message matches one of the listed addresses, an
|
||||
automatic reply will not be generated for that message. The addresses
|
||||
need not be fully qualified. If you will be sending yourself mail from
|
||||
a remote site, you may wish to include your remote address to avoid
|
||||
sending yourself an automatic reply.
|
||||
|
||||
Lines beginning with a
|
||||
.I #
|
||||
character and blank lines will be ignored.
|
||||
.SH CAVEATS
|
||||
If you already have a
|
||||
.B ~/.qmail
|
||||
file, which contains delivery instructions other than those specified
|
||||
by
|
||||
.BR vacation ,
|
||||
there is a risk that it will be deleted by
|
||||
.BR vacation .
|
||||
It is good practise to keep a copy of your
|
||||
.B ~/.qmail
|
||||
file.
|
||||
|
||||
If you are hand editing your
|
||||
.B ~/.qmail
|
||||
file, remember to include a delivery instruction to save the message in
|
||||
your default Mailbox, which should be
|
||||
.BR $home/Maildir/ .
|
||||
You
|
||||
.I must
|
||||
expand any environment variables - such as
|
||||
.I $home
|
||||
or
|
||||
.I $user
|
||||
- as
|
||||
.B qmail-local
|
||||
will not expand them for you.
|
||||
|
||||
If you have a detailed
|
||||
.B ~/.vacation.msg
|
||||
with text different from the default, there is a risk that it will be
|
||||
deleted by
|
||||
.BR vacation .
|
||||
It is good practise to keep a copy of your
|
||||
.B ~/.vacation.msg
|
||||
file.
|
||||
|
||||
If you are hand editing your
|
||||
.B ~/.vacation.msg
|
||||
file, the first block of lines up to the first blank line will form
|
||||
part of the mail headers.
|
||||
|
||||
There is
|
||||
.I no
|
||||
need to run this version of
|
||||
.B vacation
|
||||
through
|
||||
.BR qmail 's
|
||||
.B preline
|
||||
program.
|
||||
.B preline
|
||||
is used to insert a
|
||||
.B UUCP
|
||||
style
|
||||
.B From
|
||||
header into the message. This version of
|
||||
.B vacation
|
||||
does not need that header. In fact, running this version of
|
||||
.B vacation
|
||||
through
|
||||
.B preline
|
||||
will cause problems if the incoming message is larger than your system's
|
||||
standard I/O buffer size.
|
||||
.B preline
|
||||
expects to pipe the entire message through a subsequent command.
|
||||
However
|
||||
.B vacation
|
||||
only examines the headers of the message, and then stops reading from
|
||||
standard input. This upsets
|
||||
.B preline
|
||||
if the size of the message is larger than a single I/O buffer. In this
|
||||
case
|
||||
.B preline
|
||||
will terminate with a transient error to
|
||||
.B qmail-send
|
||||
and you'll see the following message in your mail logs:
|
||||
|
||||
.in 1i
|
||||
.B deferral: preline:_fatal:_unable_to_copy_input:_broken_pipe/
|
||||
.in
|
||||
|
||||
The same problem exists if you use the traditional
|
||||
.B sendmail
|
||||
version of
|
||||
.B vacation
|
||||
with
|
||||
.BR qmail .
|
||||
That version of
|
||||
.B vacation
|
||||
requires the use of
|
||||
.B preline
|
||||
to provide it with the
|
||||
.B UUCP
|
||||
style
|
||||
.B From
|
||||
header.
|
||||
.SH VERSION
|
||||
Version 1.3
|
||||
.SH AUTHOR
|
||||
Peter Samuel, Uniq Professional Services
|
||||
.br
|
||||
<Peter.Samuel@uniq.com.au>
|
||||
.SH AVAILABILITY
|
||||
The latest version of
|
||||
.B vacation
|
||||
for
|
||||
.B qmail
|
||||
should always be available from
|
||||
.I ftp://ftp.uniq.com.au/pub/tools
|
||||
.SH SEE ALSO
|
||||
.BR vi (1),
|
||||
.BR less (1),
|
||||
.BR dot-qmail (5),
|
||||
.BR qmail (7),
|
||||
.BR qmail-command (8),
|
||||
.BR qmail-local (8),
|
||||
.BR qmail-send (8).
|
@@ -0,0 +1,463 @@
|
||||
#----------------------------------------------------------------------
|
||||
# uservacations.pm
|
||||
# support@dungog.net
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
package esmith::FormMagick::Panel::uservacations;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use esmith::util;
|
||||
use esmith::FormMagick;
|
||||
use esmith::AccountsDB;
|
||||
use esmith::ConfigDB;
|
||||
|
||||
use Exporter;
|
||||
use Carp qw(verbose);
|
||||
|
||||
use HTML::Tabulate;
|
||||
|
||||
our @ISA = qw(esmith::FormMagick Exporter);
|
||||
|
||||
our @EXPORT = qw();
|
||||
|
||||
our $db = esmith::ConfigDB->open();
|
||||
our $adb = esmith::AccountsDB->open();
|
||||
|
||||
our $PanelUser = $ENV{'REMOTE_USER'} ||'';
|
||||
$PanelUser = $1 if ($PanelUser =~ /^([a-z][\.\-a-z0-9]*)$/);
|
||||
|
||||
our %delegatedVacations;
|
||||
|
||||
sub new {
|
||||
shift;
|
||||
my $self = esmith::FormMagick->new(filename => '/etc/e-smith/web/functions/uservacations');
|
||||
$self->{calling_package} = (caller)[0];
|
||||
bless $self;
|
||||
return $self;
|
||||
}
|
||||
|
||||
|
||||
#server-manager functions
|
||||
sub user_accounts_exist
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
#return scalar $adb->users;
|
||||
if (scalar $adb->users)
|
||||
{ return $self->localise('DESCRIPTION'); }
|
||||
}
|
||||
|
||||
sub print_vacation_table
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
|
||||
#We want to retrieve granted group from DB, and retrieve users of groups
|
||||
my $record = $adb->get($PanelUser);
|
||||
my $dg=$record->prop('delegatedVacations')||'';
|
||||
$dg =~ s/ //g;
|
||||
my @g = split(/,/, $dg);
|
||||
my @visiblemembers = ();
|
||||
|
||||
foreach my $g (@g) {
|
||||
my $members = $adb->get_prop("$g",'Members');
|
||||
next unless defined $members;
|
||||
$members =~ s/ //g;
|
||||
my @members = split(/,/, $members);
|
||||
push @visiblemembers , @members ;
|
||||
}
|
||||
|
||||
foreach my $k ( @visiblemembers )
|
||||
{
|
||||
$delegatedVacations{$k}=1;
|
||||
}
|
||||
|
||||
|
||||
my @users = $adb->users;
|
||||
return $self->localise("ACCOUNT_USER_NONE") if (@users == 0);
|
||||
return $self->localise("NO_USERS_IN_GRANTED_GROUPS") if (@visiblemembers == 0 && $dg ne '');
|
||||
|
||||
my $vacation_table =
|
||||
{
|
||||
title => $self->localise('USER_LIST_CURRENT'),
|
||||
|
||||
stripe => '#D4D0C8',
|
||||
|
||||
fields => [ qw(User FullName status Modify) ],
|
||||
|
||||
labels => 1,
|
||||
|
||||
field_attr => {
|
||||
User => { label_escape => 0, escape => 0 , label => $self->localise('ACCOUNT') },
|
||||
|
||||
FullName => { label_escape => 0, escape => 0 , label => $self->localise('USER_NAME') },
|
||||
|
||||
status => { label_escape => 0, escape => 0 , label => $self->localise('LABEL_VACATION') },
|
||||
|
||||
Modify => { label_escape => 0,
|
||||
label => $self->localise('MODIFY'),
|
||||
link => \&modify_link
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
my @data = ();
|
||||
|
||||
for my $user (@users)
|
||||
{
|
||||
next if %delegatedVacations and not $delegatedVacations{$user->key};
|
||||
# make it clearer which uses have vacation
|
||||
my $EmailVacation = $user->prop('EmailVacation') || '';
|
||||
my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
|
||||
my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
|
||||
my $status = $user->prop('EmailVacation') || '';
|
||||
if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; }
|
||||
|
||||
push @data,
|
||||
{ User => $user->key,
|
||||
FullName => $user->prop('FirstName') . " " .
|
||||
$user->prop('LastName'),
|
||||
status => $self->localise($status),
|
||||
EmailVacation => $EmailVacation,
|
||||
EmailVacationFrom => $EmailVacationFrom,
|
||||
EmailVacationTo => $EmailVacationTo,
|
||||
Modify => $self->localise('MODIFY'),
|
||||
}
|
||||
}
|
||||
|
||||
my $t = HTML::Tabulate->new($vacation_table);
|
||||
|
||||
$t->render(\@data, $vacation_table);
|
||||
}
|
||||
|
||||
sub modify_link
|
||||
{
|
||||
my ($data_item, $row, $field) = @_;
|
||||
|
||||
return "uservacations?" .
|
||||
join("&",
|
||||
"page=0",
|
||||
"page_stack=",
|
||||
"Next=Next",
|
||||
"User=" . $row->{User},
|
||||
"FullName=" . $row->{FullName},
|
||||
"EmailVacation=" . $row->{EmailVacation},
|
||||
"EmailVacationFrom=" . $row->{EmailVacationFrom},
|
||||
"EmailVacationTo=" . $row->{EmailVacationTo},
|
||||
"wherenext=VACATION_PAGE_MODIFY");
|
||||
}
|
||||
|
||||
# this formats the text to display on screen
|
||||
sub get_vacation_text
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
|
||||
my $domain = $db->get_value('DomainName');
|
||||
my $user = $q->param('User');
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $from = 'From:';
|
||||
my $away = $self->localise('AWAY_FROM_MAIL');
|
||||
my $return = $self->localise('ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
my $ExistingMessage = "$from $fullname <\;$user\@$domain>\;\n"."Subject: $return\n".
|
||||
"\n$away\n"."\n--\n$fullname";
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp;
|
||||
|
||||
#reformat so email address isn't hidden inside < >
|
||||
while (<VACATION>)
|
||||
{
|
||||
$_ =~ s/</<\;/;
|
||||
$_ =~ s/>/>\;/;
|
||||
push (@vacationTemp, $_);
|
||||
}
|
||||
|
||||
$ExistingMessage = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
my $start = '<tr>
|
||||
<td class="sme-noborders-label">' . $self->localise('MESSAGE') . '
|
||||
<td class="sme-noborders-content"><TEXTAREA NAME="new_message" ROWS="10" COLS="60">';
|
||||
|
||||
my $end = '</TEXTAREA></td>
|
||||
</tr>';
|
||||
|
||||
return $start . $ExistingMessage . $end;
|
||||
}
|
||||
|
||||
# saves the text to .vacation.msg
|
||||
sub change_settings
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
|
||||
my $domain = $db->get_value('DomainName');
|
||||
my $user = $q->param('User');
|
||||
|
||||
my $EmailVacation = $q->param('EmailVacation');
|
||||
my $EmailVacationFrom = $q->param('EmailVacationFrom');
|
||||
my $EmailVacationTo = $q->param('EmailVacationTo');
|
||||
my $new_message = $q->param('new_message');
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
|
||||
my $from = 'From:';
|
||||
my $away = $self->localise('AWAY_FROM_MAIL');
|
||||
my $return = $self->localise('ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n".
|
||||
"\n$away \n"."\n--\n$fullname";
|
||||
|
||||
my $reset = $vacation_text;
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp = <VACATION>;
|
||||
$vacation_text = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
|
||||
chomp $new_message;
|
||||
|
||||
# reset msg to default,
|
||||
if ($new_message =~ /reset/)
|
||||
{ $vacation_text = $reset; }
|
||||
else
|
||||
{
|
||||
#or save new_message
|
||||
unless ($new_message eq "")
|
||||
{ $vacation_text = $new_message; }
|
||||
}
|
||||
|
||||
# Strip out DOS Carriage Returns (CR)
|
||||
$vacation_text =~ s/\r//g;
|
||||
|
||||
unlink $vfile;
|
||||
open (VACATION, ">$vfile")
|
||||
or die ("Error opening vacation message.\n");
|
||||
|
||||
print VACATION "$vacation_text";
|
||||
close VACATION;
|
||||
|
||||
esmith::util::chownFile($user, $user,
|
||||
"/home/e-smith/files/users/$user/.vacation.msg");
|
||||
|
||||
$adb->set_prop($user, 'EmailVacation', $EmailVacation);
|
||||
$adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
|
||||
$adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
|
||||
|
||||
#the first is more correct but is slower
|
||||
#system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
|
||||
system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0
|
||||
or die ("Error occurred updating .qmail\n");
|
||||
|
||||
if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation"))
|
||||
{
|
||||
system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0
|
||||
or die ("Error resetting vacation db.\n");
|
||||
}
|
||||
|
||||
return $self->success("SUCCESS");
|
||||
}
|
||||
|
||||
#userpanel functions ######################################################
|
||||
sub get_panel_user
|
||||
{
|
||||
return $PanelUser;
|
||||
}
|
||||
|
||||
sub get_full_name
|
||||
{
|
||||
return $adb->get_prop($PanelUser, "FirstName") . " " .
|
||||
$adb->get_prop($PanelUser, "LastName");
|
||||
}
|
||||
|
||||
sub get_vacation_status
|
||||
{
|
||||
return $adb->get_prop($PanelUser, "EmailVacation");
|
||||
}
|
||||
|
||||
sub get_vacation_date_from
|
||||
{
|
||||
return $adb->get_prop($PanelUser, "EmailVacationFrom");
|
||||
}
|
||||
|
||||
sub get_vacation_date_to
|
||||
{
|
||||
return $adb->get_prop($PanelUser, "EmailVacationTo");
|
||||
}
|
||||
|
||||
# this formats the text to display on screen
|
||||
sub userpanel_get_vacation_text
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
|
||||
my $domain = $db->get_value('DomainName');
|
||||
|
||||
# single difference in userpanel function
|
||||
my $user = $PanelUser;
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $from = 'From:';
|
||||
my $away = $self->localise('AWAY_FROM_MAIL');
|
||||
my $return = $self->localise('ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
my $ExistingMessage = "$from $fullname <\;$user\@$domain>\;\n"."Subject: $return\n".
|
||||
"\n$away"."\n--\n$fullname";
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp;
|
||||
|
||||
#reformat so email address isn't hidden inside < >
|
||||
while (<VACATION>)
|
||||
{
|
||||
$_ =~ s/</<\;/;
|
||||
$_ =~ s/>/>\;/;
|
||||
push (@vacationTemp, $_);
|
||||
}
|
||||
|
||||
$ExistingMessage = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
my $start = '<tr>
|
||||
<td class="sme-noborders-label">' . $self->localise('MESSAGE') . '
|
||||
<td class="sme-noborders-content"><TEXTAREA NAME="new_message" ROWS="10" COLS="60">';
|
||||
|
||||
my $end = '</TEXTAREA></td>
|
||||
</tr>';
|
||||
|
||||
return $start . $ExistingMessage . $end;
|
||||
}
|
||||
|
||||
# saves the text to .vacation.msg
|
||||
sub userpanel_change_settings
|
||||
{
|
||||
my $self = shift;
|
||||
my $q = $self->{cgi};
|
||||
|
||||
my $domain = $db->get_value('DomainName');
|
||||
|
||||
# single difference in userpanel function
|
||||
my $user = $PanelUser;
|
||||
|
||||
my $EmailVacation = $q->param('EmailVacation');
|
||||
my $new_message = $q->param('new_message');
|
||||
my $EmailVacationFrom = $q->param('EmailVacationFrom');
|
||||
my $EmailVacationTo = $q->param('EmailVacationTo');
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
|
||||
my $from = 'From:';
|
||||
my $away = $self->localise('AWAY_FROM_MAIL');
|
||||
my $return = $self->localise('ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n".
|
||||
"\n$away \n"."\n--\n$fullname";
|
||||
|
||||
my $reset = $vacation_text;
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp = <VACATION>;
|
||||
$vacation_text = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
|
||||
chomp $new_message;
|
||||
|
||||
# reset msg to default,
|
||||
if ($new_message =~ /reset/)
|
||||
{ $vacation_text = $reset; }
|
||||
else
|
||||
{
|
||||
#or save new_message
|
||||
unless ($new_message eq "")
|
||||
{ $vacation_text = $new_message; }
|
||||
}
|
||||
|
||||
# Strip out DOS Carriage Returns (CR)
|
||||
$vacation_text =~ s/\r//g;
|
||||
|
||||
unlink $vfile;
|
||||
# for the next lines to avoid race condition vulnerability, we switch the effective user to
|
||||
# the one needed see SME #9073 . Those 4 lines are for explanation of the used variables.
|
||||
#$< - real user id (uid); unique value
|
||||
#$> - effective user id (euid); unique value
|
||||
#$( - real group id (gid); list (separated by spaces) of groups
|
||||
#$) - effective group id (egid); list (separated by spaces) of groups
|
||||
|
||||
# remember the UID of the user currently running this script
|
||||
my $original_uid = $>;
|
||||
my $original_gid = $);
|
||||
|
||||
# switch effective UID running this script to $user
|
||||
# in order to prevent race condition vulnerability
|
||||
my $uid = getpwnam($user) or die "Could not get UID for $user\n";
|
||||
my $gid = getgrnam($user) or die "Could not get GID for $user\n";
|
||||
$) = $gid;# should be switched first while still root!
|
||||
$> = $uid;
|
||||
|
||||
open (VACATION, ">$vfile")
|
||||
or die ("Error opening vacation message.\n");
|
||||
|
||||
print VACATION "$vacation_text";
|
||||
close VACATION;
|
||||
|
||||
# switch effective UID and GID back to original user
|
||||
$> = $original_uid;
|
||||
$) = $original_gid;
|
||||
|
||||
$adb->set_prop($user, 'EmailVacation', $EmailVacation);
|
||||
$adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
|
||||
$adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
|
||||
|
||||
#the first is more correct but is slower
|
||||
#system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
|
||||
system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0
|
||||
or die ("Error occurred updating .qmail\n");
|
||||
|
||||
if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation"))
|
||||
{
|
||||
system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0
|
||||
or die ("Error resetting vacation db.\n");
|
||||
}
|
||||
|
||||
return $self->success("SUCCESS");
|
||||
}
|
||||
|
||||
1;
|
384
root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm
Normal file
384
root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm
Normal file
@@ -0,0 +1,384 @@
|
||||
package SrvMngr::Controller::Uservacations;
|
||||
#----------------------------------------------------------------------
|
||||
# heading : User management
|
||||
# description : User Vacations
|
||||
# navigation : 2000 150
|
||||
#
|
||||
# name : Uservacationsget, method : get, url : /uservacations, ctlact : Uservacations#main
|
||||
# name : Uservacationspost,method : post, url : /Uservacations, ctlact : Uservacations#do_display
|
||||
# name : Uservacations1, method : get, url : /Uservacations1, ctlact : Uservacations#do_display
|
||||
# name : Uservacations2, method : post, url : /Uservacations2, ctlact : Uservacations#do_display
|
||||
# routes : end
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
|
||||
#use DateTime; #Not part of SME10 mix
|
||||
use POSIX;
|
||||
|
||||
use Locale::gettext;
|
||||
use SrvMngr::I18N;
|
||||
use SrvMngr qw(theme_list init_session);
|
||||
|
||||
use Data::Dumper;
|
||||
use esmith::util;
|
||||
use esmith::HostsDB;
|
||||
use esmith::AccountsDB;
|
||||
|
||||
our $db = esmith::ConfigDB->open();
|
||||
our $adb = esmith::AccountsDB->open();
|
||||
|
||||
our $PanelUser = $ENV{'REMOTE_USER'} ||'';
|
||||
$PanelUser = $1 if ($PanelUser =~ /^([a-z][\.\-a-z0-9]*)$/);
|
||||
|
||||
our %delegatedVacations;
|
||||
|
||||
use constant FALSE => 0;
|
||||
use constant TRUE => 1;
|
||||
|
||||
sub main {
|
||||
|
||||
my $c = shift;
|
||||
$c->app->log->info( $c->log_req );
|
||||
|
||||
my %vac_datas = ();
|
||||
my $title = $c->l('vac_FORM_TITLE');
|
||||
my $modul = '';
|
||||
|
||||
$vac_datas{trt} = 'LIST';
|
||||
|
||||
my @vacations = get_vacation_table($c);
|
||||
my $empty = (scalar @vacations == 0);
|
||||
|
||||
$vac_datas{"first"} = 'vac_MODIFY_DESCRIPTION';
|
||||
|
||||
$c->stash(
|
||||
title => $title,
|
||||
modul => $modul,
|
||||
vac_datas => \%vac_datas,
|
||||
vacations =>\@vacations,
|
||||
empty => $empty
|
||||
);
|
||||
$c->render( template => 'uservacations' );
|
||||
}
|
||||
|
||||
sub do_display {
|
||||
|
||||
my $c = shift;
|
||||
$c->app->log->info( $c->log_req );
|
||||
|
||||
my $rt = $c->current_route;
|
||||
my $trt = ( $c->param('trt') || 'LIST' );
|
||||
|
||||
$trt = 'ADD' if ( $rt eq 'Uservacations1' );
|
||||
$trt = 'ADD1' if ( $rt eq 'Uservacations2' );
|
||||
|
||||
my %vac_datas = ();
|
||||
my $title = $c->l('vac_FORM_TITLE');
|
||||
my $modul = '';
|
||||
|
||||
|
||||
if ( $trt eq 'ADD' ) {
|
||||
# Add or change a vacation message - called from the list panel
|
||||
# Get the data and pass it across.
|
||||
my $account = $c->param("account");
|
||||
my $user = $adb->get($account);
|
||||
my $username = $user->prop("FirstName")." ".$user->prop("LastName");
|
||||
my $EmailVacation = $user->prop('EmailVacation') || '';
|
||||
my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
|
||||
my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
|
||||
my $VacText = get_vacation_text($c);
|
||||
$c->stash(account=>$account,
|
||||
username=>$username,
|
||||
EmailVacation=>$EmailVacation,
|
||||
EmailVacationFrom=>$EmailVacationFrom,
|
||||
EmailVacationTo=>$EmailVacationTo,
|
||||
VacText=>$VacText
|
||||
);
|
||||
}
|
||||
|
||||
if ( $trt eq 'ADD1' ) {
|
||||
#Add or edit vacation message.
|
||||
my $ret = add_vac_message($c);
|
||||
#Return to list page if success
|
||||
if ($ret eq "OK") {
|
||||
$trt = "LIST";
|
||||
$vac_datas{success} = "vac_SUCCESS";
|
||||
|
||||
} else {
|
||||
my $account = $c->param("account");
|
||||
my $user = $adb->get($account);
|
||||
my $username = $user->prop("FirstName")." ".$user->prop("LastName");
|
||||
my $EmailVacationFrom = $c->param('EmailVacationFrom') || '';
|
||||
my $EmailVacationTo = $c->param('EmailVacationTo') || '';
|
||||
my $EmailVacation = $c->param('EmailVacation') || '';
|
||||
my $VacText = $c->param("VacText");
|
||||
$c->stash(account=>$account,
|
||||
username=>$username,
|
||||
EmailVacation=>$EmailVacation,
|
||||
EmailVacationFrom=>$EmailVacationFrom,
|
||||
EmailVacationTo=>$EmailVacationTo,
|
||||
VacText=>$VacText
|
||||
);
|
||||
#Error - return to Add page
|
||||
$trt = "ADD";
|
||||
$vac_datas{error} = $ret;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $trt eq 'LIST' ) {
|
||||
|
||||
#List all the users and vacation message details.
|
||||
my @vacations = get_vacation_table($c);
|
||||
my $empty = (scalar @vacations == 0);
|
||||
$c->stash(
|
||||
empty => $empty,
|
||||
vacations =>\@vacations
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$vac_datas{'trt'} = $trt;
|
||||
$c->stash( title => $title, modul => $modul, vac_datas => \%vac_datas );
|
||||
$c->render( template => 'uservacations' );
|
||||
}
|
||||
|
||||
sub user_accounts_exist
|
||||
{
|
||||
my $q = shift;
|
||||
#return scalar $adb->users;
|
||||
if (scalar $adb->users)
|
||||
{ return $q->l('vac_DESCRIPTION'); }
|
||||
}
|
||||
|
||||
sub get_vacation_table
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
#We want to retrieve granted group from DB, and retrieve users of groups
|
||||
my $record = $adb->get($PanelUser);
|
||||
my $dg;
|
||||
if ($record) {$dg=$record->prop('delegatedVacations')||'';}
|
||||
else {$dg = '';}
|
||||
$dg =~ s/ //g;
|
||||
my @g = split(/,/, $dg);
|
||||
my @visiblemembers = ();
|
||||
|
||||
foreach my $g (@g) {
|
||||
my $members = $adb->get_prop("$g",'Members');
|
||||
next unless defined $members;
|
||||
$members =~ s/ //g;
|
||||
my @members = split(/,/, $members);
|
||||
push @visiblemembers , @members ;
|
||||
}
|
||||
|
||||
foreach my $k ( @visiblemembers )
|
||||
{
|
||||
$delegatedVacations{$k}=1;
|
||||
}
|
||||
|
||||
|
||||
my @users = $adb->users;
|
||||
return () if (@users == 0); ##$self->l("ACCOUNT_USER_NONE")
|
||||
return () if (@visiblemembers == 0 && $dg ne '');#; #$self->l("NO_USERS_IN_GRANTED_GROUPS")
|
||||
|
||||
my @data = ();
|
||||
|
||||
for my $user (@users)
|
||||
{
|
||||
next if %delegatedVacations and not $delegatedVacations{$user->key};
|
||||
# make it clearer which uses have vacation
|
||||
my $EmailVacation = $user->prop('EmailVacation') || '';
|
||||
my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
|
||||
my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
|
||||
my $status = $user->prop('EmailVacation') || '';
|
||||
if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; }
|
||||
|
||||
push @data,
|
||||
{ User => $user->key,
|
||||
FullName => $user->prop('FirstName') . " " .$user->prop('LastName'),
|
||||
status => $self->l($status),
|
||||
EmailVacation => $EmailVacation,
|
||||
EmailVacationFrom => showDate($EmailVacationFrom),
|
||||
EmailVacationTo => showDate($EmailVacationTo),
|
||||
Modify => $self->l('vac_MODIFY'),
|
||||
}
|
||||
}
|
||||
return @data;
|
||||
}
|
||||
|
||||
sub showDate
|
||||
{
|
||||
my $strDate = shift;
|
||||
my ($Year,$Month,$Day) = ($strDate =~ /(\d{4})(\d{2})(\d{2})/);
|
||||
#my $Unix = mktime(0,0,0,$Day,$Month,$Year);
|
||||
return "$Year-$Month-$Day";
|
||||
}
|
||||
|
||||
|
||||
sub modify_link
|
||||
{
|
||||
my ($data_item, $row, $field) = @_;
|
||||
|
||||
return "uservacations?" .
|
||||
join("&",
|
||||
"page=0",
|
||||
"page_stack=",
|
||||
"Next=Next",
|
||||
"User=" . $row->{User},
|
||||
"FullName=" . $row->{FullName},
|
||||
"EmailVacation=" . $row->{EmailVacation},
|
||||
"EmailVacationFrom=" . $row->{EmailVacationFrom},
|
||||
"EmailVacationTo=" . $row->{EmailVacationTo},
|
||||
"wherenext=VACATION_PAGE_MODIFY");
|
||||
}
|
||||
|
||||
# this formats the text to display on screen
|
||||
sub get_vacation_text
|
||||
{
|
||||
my $q = shift;
|
||||
my $domain = $db->get_value('DomainName');
|
||||
my $user = $q->param('account');
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $from = $q->l('vac_FROM');
|
||||
my $Subject = $q->l('vac_SUBJECT');
|
||||
my $away = $q->l('vac_AWAY_FROM_MAIL');
|
||||
my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
#my $ExistingMessage = "$from $fullname <\;$user\@$domain>\;\n"."$Subject $return\n".
|
||||
# "\n$away\n"."\n--\n$fullname";
|
||||
|
||||
my $ExistingMessage = "$from $fullname \<$user\@$domain\>\n"."$Subject $return\n".
|
||||
"\n$away\n"."\n--\n$fullname";
|
||||
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp;
|
||||
|
||||
#reformat so email address isn't hidden inside < >
|
||||
while (<VACATION>)
|
||||
{
|
||||
$_ =~ s/</<\;/;
|
||||
$_ =~ s/>/>\;/;
|
||||
push (@vacationTemp, $_);
|
||||
}
|
||||
|
||||
$ExistingMessage = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
return $ExistingMessage;
|
||||
}
|
||||
|
||||
# saves the text to .vacation.msg
|
||||
sub add_vac_message
|
||||
{
|
||||
my $q = shift;
|
||||
|
||||
my $domain = $db->get_value('DomainName');
|
||||
my $user = $q->param('account');
|
||||
|
||||
my $EmailVacation = $q->param('EmailVacation')||"no";
|
||||
#die($EmailVacation);
|
||||
#if ($EmailVacation eq "yes") {$EmailVacation = "yes";} else {$EmailVacation = "no";}
|
||||
|
||||
#Decode To and FROM to standard format - comes over in html5 iso format yyyy-mm-dd
|
||||
my $EmailVacationFrom = trim($q->param('EmailVacationFrom'));
|
||||
my ($fromYear,$fromMonth,$fromDay) = ($EmailVacationFrom =~ /(\d{4})-(\d{2})-(\d{2})/);
|
||||
$EmailVacationFrom = $fromYear.$fromMonth.$fromDay;
|
||||
if ($EmailVacationFrom !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_FROM_DATE_INCORRECT";}
|
||||
my $EmailVacationTo = trim($q->param('EmailVacationTo'));
|
||||
my ($toYear,$toMonth,$toDay) = ($EmailVacationTo =~ /(\d{4})-(\d{2})-(\d{2})/);
|
||||
$EmailVacationTo = $toYear.$toMonth.$toDay;
|
||||
# $EmailVacationTo =~ s/-//g; #Just take out "-".
|
||||
if ($EmailVacationTo !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_TO_DATE_INCORRECT";}
|
||||
#Check not the same or From follows To.
|
||||
if ($EmailVacationTo ne "" and $EmailVacationTo eq $EmailVacationFrom) {return "vac_DATES_THE_SAME";}
|
||||
my $UnixFrom = mktime(0,0,0,$fromDay,$fromMonth,$fromYear);
|
||||
my $UnixTo = mktime(0,0,0,$toDay,$toMonth,$toYear);
|
||||
if ($UnixTo < $UnixFrom) {return "vac_TO_DATE_MUST_BE_LATER";}
|
||||
|
||||
|
||||
my $new_message = $q->param('VacText');
|
||||
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
|
||||
|
||||
my $fullname = $adb->get_prop($user, "FirstName") . " " .
|
||||
$adb->get_prop($user, "LastName");
|
||||
|
||||
my $from = 'From:';
|
||||
my $away = $q->l('vac_AWAY_FROM_MAIL');
|
||||
my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
|
||||
|
||||
my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n".
|
||||
"\n$away \n"."\n--\n$fullname";
|
||||
|
||||
my $reset = $vacation_text;
|
||||
|
||||
# if exists and is not empty
|
||||
if (( -e $vfile ) && (! -z $vfile ))
|
||||
{
|
||||
open (VACATION, "<$vfile")
|
||||
or die "Error: Could not open file: $vfile\n";
|
||||
my @vacationTemp = <VACATION>;
|
||||
$vacation_text = join ("", @vacationTemp);
|
||||
|
||||
close VACATION;
|
||||
}
|
||||
|
||||
chomp $new_message;
|
||||
|
||||
# reset msg to default,
|
||||
if ($new_message =~ /reset/)
|
||||
{ $vacation_text = $reset; }
|
||||
else
|
||||
{
|
||||
#or save new_message
|
||||
unless ($new_message eq "")
|
||||
{ $vacation_text = $new_message; }
|
||||
}
|
||||
|
||||
# Strip out DOS Carriage Returns (CR)
|
||||
$vacation_text =~ s/\r//g;
|
||||
|
||||
unlink $vfile;
|
||||
open (VACATION, ">$vfile")
|
||||
or die ("Error opening vacation message.\n");
|
||||
|
||||
print VACATION "$vacation_text";
|
||||
close VACATION;
|
||||
|
||||
esmith::util::chownFile($user, $user,
|
||||
"/home/e-smith/files/users/$user/.vacation.msg");
|
||||
|
||||
$adb->set_prop($user, 'EmailVacation', $EmailVacation);
|
||||
$adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
|
||||
$adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
|
||||
|
||||
#the first is more correct but is slower
|
||||
#system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
|
||||
system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0
|
||||
or die ("Error occurred updating .qmail\n");
|
||||
|
||||
if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation"))
|
||||
{
|
||||
system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0
|
||||
or die ("Error resetting vacation db.\n");
|
||||
}
|
||||
|
||||
return "OK";
|
||||
}
|
||||
|
||||
sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
|
||||
|
||||
1;
|
@@ -0,0 +1,63 @@
|
||||
package SrvMngr::I18N::Modules::Uservacations::en;
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
use Mojo::Base 'SrvMngr::I18N';
|
||||
|
||||
use SrvMngr::I18N::Modules::General::en;
|
||||
|
||||
my %lexicon = (
|
||||
'vac_User vacations' =>'User vacations',
|
||||
'vac_Vacation Message' =>'Vacation Message',
|
||||
'vac_FORM_TITLE' =>'Change user vacation settings',
|
||||
'vac_DESCRIPTION' =>' You can modify a users vacation message by clicking
|
||||
on the link to the right of their name below.
|
||||
',
|
||||
'vac_LABEL_VACATION' =>'Vacation',
|
||||
'vac_NO_FORWARDS'=>'No users found for forwarding',
|
||||
'vac_VACATION_FROM' =>'Vacation starts on <br>(YYYY-MM-DD)',
|
||||
'vac_VACATION_TO' =>'Vacation finishes on <br>(YYYY-MM-DD)',
|
||||
'vac_VACATION_FROM1' =>'Vacation starts on',
|
||||
'vac_VACATION_TO1' =>'Vacation finishes on',
|
||||
'vac_MESSAGE' =>'Vacation message',
|
||||
'vac_VACATION_STATUS' =>'Enable vacation messages',
|
||||
'vac_FROM' =>'From:',
|
||||
'vac_SUBJECT' =>'Subject:',
|
||||
'vac_AWAY_FROM_MAIL' =>'I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.',
|
||||
'vac_NO_USERS_IN_GRANTED_GROUPS' =>'There are no users in the group(s) that you are granted to manage.',
|
||||
'vac_ANSWER_TO_OBJECT_SENDER' => 'Re: $SUBJECT - Away from my email ',
|
||||
'vac_FROM_DATE_INCORRECT'=>'From date must have YYYYMMDD format',
|
||||
'vac_TO_DATE_INCORRECT'=>'To date must have YYYYMMDD format',
|
||||
'vac_DATES_THE_SAME'=>"The Start and Finish dates cannot be the same",
|
||||
'vac_TO_DATE_MUST_BE_LATER'=>"The Finish dates cannot be earlier than the Start date",
|
||||
'vac_SUCCESS'=>'Vacation message saved sucessfully',
|
||||
'vac_MODIFY_DESCRIPTION' =>'
|
||||
<p>
|
||||
Enter a vacation message here. You can use $SUBJECT
|
||||
anywhere in the text to be replaced with the subject line
|
||||
from the email that activated the auto-reply.</p>
|
||||
|
||||
<p>
|
||||
This message must be composed of two parts separated by a blank line.
|
||||
The first will be integrated into the headings of the email reply,
|
||||
you must thus ensure you leave at least a blank line before typing your message.
|
||||
The primary domain is added to the address automatically,or you can insert a virtual domain by replacing the domain part of the sender address
|
||||
in the first line of the message with the virtual domain name (eg. replace the default From: user@primary.domain with From: user@virtual.domain).
|
||||
To change the vacation message back to the default type reset.</p>
|
||||
<p>
|
||||
You can also fill out the Enable vacation on and Disable vacation on fields in order to
|
||||
automatically enable and disable sending of the vacation message for this user account on the given dates.
|
||||
</p>
|
||||
<p>
|
||||
The dates in the two fields must not be the same.<br>
|
||||
If you want to use this functionality, leave the Enable vacation messages setting at No - it will be automatically activated based on the date given.
|
||||
</p>'
|
||||
);
|
||||
|
||||
our %Lexicon = (
|
||||
%{ SrvMngr::I18N::Modules::General::en::Lexicon },
|
||||
%lexicon
|
||||
);
|
||||
|
||||
|
||||
1;
|
@@ -0,0 +1,55 @@
|
||||
<div id='vac_add'>
|
||||
|
||||
% my $btn = l('ADD');
|
||||
|
||||
% if ($config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
%= dumper $EmailVacation
|
||||
</p>
|
||||
% }
|
||||
|
||||
%= form_for '/Uservacations2' => (method => 'POST') => begin
|
||||
|
||||
<span class=label>
|
||||
%=l 'ACCOUNT'
|
||||
</span><span class=data>
|
||||
%= $account
|
||||
</span><br>
|
||||
<span class=label>
|
||||
%=l 'USER_NAME'
|
||||
</span><span class=data>
|
||||
%=$username
|
||||
</span><br>
|
||||
<span class=label>
|
||||
%=$c->render_to_string(inline =>$c->l('vac_VACATION_FROM1'))
|
||||
</span>
|
||||
<span class=data>
|
||||
%=date_field 'EmailVacationFrom' =>$EmailVacationFrom
|
||||
</span><br>
|
||||
<span class=label>
|
||||
%=$c->render_to_string(inline =>$c->l('vac_VACATION_TO1'))
|
||||
</span>
|
||||
<span class=data>
|
||||
%=date_field 'EmailVacationTo' =>$EmailVacationTo
|
||||
</span><br>
|
||||
<span class=label>
|
||||
%=l 'vac_MESSAGE'
|
||||
</span>
|
||||
<span class=data>
|
||||
% $VacText = b("$VacText");
|
||||
%=text_area 'VacText' => $VacText, cols=>40, rows=>15
|
||||
</span><br>
|
||||
<span class=label>
|
||||
%=l 'vac_VACATION_STATUS'
|
||||
</span>
|
||||
<span class=data>
|
||||
% param EmailVacation => "$EmailVacation";
|
||||
%=select_field EmailVacation =>[['Yes'=>'yes'],['No'=>'no']]
|
||||
</span><br>
|
||||
%= hidden_field 'account' => $account
|
||||
|
||||
%= submit_button "$btn", class => 'action'
|
||||
%end
|
||||
|
||||
</div>
|
@@ -0,0 +1,51 @@
|
||||
<div id='vac_list'>
|
||||
|
||||
%# my $btn = l('vac_CREATE_RULE');
|
||||
|
||||
%= form_for '/Uservacations1' => (method => 'POST') => begin
|
||||
<br><br>
|
||||
|
||||
% if ($empty){
|
||||
<br>
|
||||
%=l 'vac_NO_FORWARDS'
|
||||
% } else {
|
||||
<table class="sme-border TableSort"><thead>
|
||||
<tr>
|
||||
<th class='sme-border'>
|
||||
%=l 'ACCOUNT'
|
||||
</th>
|
||||
<th class='sme-border'>
|
||||
%=l 'USER_NAME'
|
||||
</th>
|
||||
<th class='sme-border'>
|
||||
%=l 'vac_LABEL_VACATION'
|
||||
</th>
|
||||
|
||||
<th class='sme-border'>
|
||||
%=$c->render_to_string(inline =>l('vac_VACATION_FROM'))
|
||||
</th>
|
||||
<th class='sme-border'>
|
||||
%=$c->render_to_string(inline =>l('vac_VACATION_TO'))
|
||||
</th>
|
||||
<th class='sme-border' '>
|
||||
%=l 'ACTION'
|
||||
</th>
|
||||
</tr>
|
||||
</thead><tbody>
|
||||
% foreach my $vacation (@$vacations) {
|
||||
<tr>
|
||||
%= t td => (class => 'sme-border') => $vacation->{"User"}
|
||||
%= t td => (class => 'sme-border') => $vacation->{"FullName"}
|
||||
%= t td => (class => 'sme-border') => $vacation->{"status"}
|
||||
%= t td => (class => 'sme-border') => $vacation->{"EmailVacationFrom"}
|
||||
%= t td => (class => 'sme-border') => $vacation->{"EmailVacationTo"}
|
||||
<td>
|
||||
<a href="/smanager/Uservacations1?trt=ADD&account=<%= $vacation->{"User"}%>"><%=l 'MODIFY'%></a>
|
||||
</td>
|
||||
</tr>
|
||||
%}
|
||||
</tbody>
|
||||
</table>
|
||||
%}
|
||||
% end
|
||||
</div>
|
@@ -0,0 +1,42 @@
|
||||
% layout 'default', title => "Sme server 2 - User Vacations", share_dir => './';
|
||||
|
||||
% content_for 'module' => begin
|
||||
<div id="module" class="module vacation-panel">
|
||||
|
||||
% if ($config->{debug} == 1) {
|
||||
<p>
|
||||
%= dumper $c->current_route
|
||||
</p>
|
||||
% }
|
||||
|
||||
<h1><%=$title%></h1>
|
||||
%= $modul
|
||||
|
||||
%if ($vac_datas->{first}) {
|
||||
<br>
|
||||
%=$c->render_to_string(inline =>$c->l($vac_datas->{first}))
|
||||
|
||||
%} elsif ($vac_datas->{success}) {
|
||||
<div class='"success"'>
|
||||
<h2> Operation Status Report</h2>
|
||||
%= $c->l($vac_datas->{success});
|
||||
</div>
|
||||
|
||||
%} elsif ($vac_datas->{error}) {
|
||||
<div class='sme-error'>
|
||||
<h2> Operation Status Report - error</h2>
|
||||
%= $c->l($vac_datas->{error});
|
||||
</div>
|
||||
%}
|
||||
|
||||
|
||||
% if ($vac_datas->{trt} eq 'ADD') {
|
||||
%= include 'partials/_vac_add'
|
||||
%} elsif ($vac_datas->{trt} eq 'ADD1') {
|
||||
%= include 'partials/_vac_add'
|
||||
%} else {
|
||||
%= include 'partials/_vac_list'
|
||||
%}
|
||||
|
||||
</div>
|
||||
%end
|
Reference in New Issue
Block a user