Toon posts:

[Sendmail] Hoe autoreply message instellen?

Pagina: 1
Acties:
  • 131 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoe stel ik bij sendmail in dat emails voor een bepaald emailadres automatisch gereplyed worden met een vastgesteld bericht?

Kan ik hier ook nog datums aan vastknopen? Dus dat hij dat maar een bepaalde periode (vakantie) hoeft te doen?

  • ThE_ED
  • Registratie: Oktober 1999
  • Laatst online: 22-01 12:32

ThE_ED

Stuffed Animal

Dat kan met procmail. (Doe maar eens "man procmail") Volgens mij is dit wel al een paar keer gevraagd.

Ik ben fan van dingen


Verwijderd

Je kan 'em natuurlijk mbv crond op bepaalde tijdstippen aan- en uitzetten. Voor als je op vakantie gaat.

[waarschuwingsmode]
Zorg dan alleen niet dat inbrekers lezen dat je op vakantie bent want dan kom je in een leeg huis terug.. (heb dat laatst in een Donald Duck gelezen.. :Y))
[/waarschuwingsmode]

Verwijderd

Topicstarter
Dat kan met procmail. (Doe maar eens "man procmail") Volgens mij is dit wel al een paar keer gevraagd.
Ik heb gezocht en er 1 topic over gevonden, maar daar werd ik niet veel wijzer van. Ik ben dan ook niet zo'n linux expert.
Je kan 'em natuurlijk mbv crond op bepaalde tijdstippen aan- en uitzetten. Voor als je op vakantie gaat.
Dat kan niet, het draait namelijk op een server die 24 uur per dag aan moet staan :+
[waarschuwingsmode]
Zorg dan alleen niet dat inbrekers lezen dat je op vakantie bent want dan kom je in een leeg huis terug.. (heb dat laatst in een Donald Duck gelezen.. )
[/waarschuwingsmode]
Het is niet voor persoonlijk gebruik, maar voor zakelijk. Iemand anders hier op het bedrijf gaat met vakantie en wil dus dat elk emailtje wat hij ontvangt automatisch een tegenbericht krijgt waarin staat tot wanneer hij weg is en wie hij wel kan bereiken en op welke manier.

  • ThE_ED
  • Registratie: Oktober 1999
  • Laatst online: 22-01 12:32

ThE_ED

Stuffed Animal

Er moet ook ergens een voorbeeld instelling van procmail zijn... Maar ik heb hier nu geen toegang tot een linux/unix bak, dus ik kan niet even voor je kijken. Zo uit m'n hoofd weet ik ook ff niet hoe het moet. Misschien kan iemand anders ff helpen?

Ik ben fan van dingen


Verwijderd

Topicstarter
Op donderdag 19 juli 2001 12:09 schreef ThE_ED het volgende:
Er moet ook ergens een voorbeeld instelling van procmail zijn... Maar ik heb hier nu geen toegang tot een linux/unix bak, dus ik kan niet even voor je kijken. Zo uit m'n hoofd weet ik ook ff niet hoe het moet. Misschien kan iemand anders ff helpen?
Het hoeft niet meteen hoor... als ik het maandag heb is het ook goed ;)

  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Uit man procmailex:

A more complicated autoreply recipe that implements the functional equivalent of the well known vacation(1) program. This recipe is based on the same principles as the last one (prevent `ringing' mail). In addition to that however, it maintains a vacation database by extracting the name of the sender and inserting it in the vacation.cache file if the name was new (the vacation.cache file is maintained by formail which will make sure that it always contains the most recent names, the size of the file is limited to a maximum of aproximately 8192 bytes). If the name was new, an autoreply will be sent.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SHELL=/bin/sh    # for other shells, this might need adjustment

:0 Whc: vacation.lock
 # Perform a quick check to see if the mail was addressed to us
* $^To:.*\<$\LOGNAME\>
 # Don't reply to daemons and mailinglists
* !^FROM_DAEMON
 # Mail loops are evil
* !^X-Loop: your@own.mail.address
| formail -rD 8192 vacation.cache
    :0 ehc     # if the name was not in the cache
    | (formail -rI"Precedence: junk" \
        -A"X-Loop: your@own.mail.address" ; \
     echo "I received your mail,"; \
     echo "but I won't be back until Monday."; \
     echo "-- "; cat $HOME/.signature \
    ) | $SENDMAIL -oi -t

Je zal wel nog een datum afhankelijkheid moeten inbouwen.

Verwijderd

Topicstarter
Op donderdag 19 juli 2001 12:23 schreef rvm het volgende:
Uit man procmailex:

A more complicated autoreply recipe that implements the functional equivalent of the well known vacation(1) program. This recipe is based on the same principles as the last one (prevent `ringing' mail). In addition to that however, it maintains a vacation database by extracting the name of the sender and inserting it in the vacation.cache file if the name was new (the vacation.cache file is maintained by formail which will make sure that it always contains the most recent names, the size of the file is limited to a maximum of aproximately 8192 bytes). If the name was new, an autoreply will be sent.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SHELL=/bin/sh    # for other shells, this might need adjustment

:0 Whc: vacation.lock
 # Perform a quick check to see if the mail was addressed to us
* $^To:.*\<$\LOGNAME\>
 # Don't reply to daemons and mailinglists
* !^FROM_DAEMON
 # Mail loops are evil
* !^X-Loop: your@own.mail.address
| formail -rD 8192 vacation.cache
    :0 ehc     # if the name was not in the cache
    | (formail -rI"Precedence: junk" \
        -A"X-Loop: your@own.mail.address" ; \
     echo "I received your mail,"; \
     echo "but I won't be back until Monday."; \
     echo "-- "; cat $HOME/.signature \
    ) | $SENDMAIL -oi -t

Je zal wel nog een datum afhankelijkheid moeten inbouwen.
???? Wat is dat nou weer allemaal? Kan het niet simpeler? Ik snap er niet al te veel van wat daar staat...

  • ThE_ED
  • Registratie: Oktober 1999
  • Laatst online: 22-01 12:32

ThE_ED

Stuffed Animal

Op donderdag 19 juli 2001 12:06 schreef Big Tazzz het volgende:

Het is niet voor persoonlijk gebruik, maar voor zakelijk. Iemand anders hier op het bedrijf gaat met vakantie en wil dus dat elk emailtje wat hij ontvangt automatisch een tegenbericht krijgt waarin staat tot wanneer hij weg is en wie hij wel kan bereiken en op welke manier.
eh.. vraag het je sysadmin.... ? :)

Ik ben fan van dingen


Verwijderd

Topicstarter
Op donderdag 19 juli 2001 14:13 schreef ThE_ED het volgende:

[..]

eh.. vraag het je sysadmin.... ? :)
Die weet dat het kan en simpel is, maar hij weet ook niet hoe het moet en heeft geen tijd om het uit te zoeken.

offtopic:
Bovendien ben ik een zogenaamde 'It Engineer' binnen het bedrijf, wat inhoud dat ik een stuk systeembeheer op me neem, alleen mijn kennis van Linux is dusdanig beroerd dat de 'It Manager' daar alles aandoet normaal. Ik ben qua Linux nog in opleiding, en echt in het aller aller eerste stadium.

Conclusie : Aangezien ik wel tijd heb mag ik het gaan uitzoeken. Maar alles wat in dat script staat is abacadabra voor mij :)

  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Misschien een makkelijkere oplossing...
Het programma vacation:
Source: http://vacation.sourceforge.net/
RPM: ftp://speakeasy.rpmfind.net/linux/sourceforge/vacation/vacation-1.2.5-1.i386.rpm

Wanneer je ingelogd bent als user, dan start je 'vacation' (kijk voor extra opties in de man page) en je kan daar meteen een berichtje intikken in je favoriete editor. Daarna een keer 'vacation -I' starten om de vacation database te initialiseren.

Ook bij deze zul je zelf nog iets moeten verzinnen om 'm alleen op bepaalde datums te laten werken.

  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Wat uitgebreider... met commentaar, dat je misschien deels moet weghalen om het werkend te krijgen.
In .procmailrc van de gebruiker die op vakantie is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
SHELL=/bin/sh    # for other shells, this might need adjustment

# Hoe laat is het nu, en wanneer begint/eindigd de vakantie?
# Uitgedrukt in seconden sinds 1970
DATUM_NU=`date --date="now" "+%s"`
VAKANTIE_BEGIN=`date --date="20 jul 2001 13:00" "+%s"`
VAKANTIE_EINDE=`date --date="27 jul 2001 17:00" "+%s"`

 # begin filter recept
 # W = geen programma foutmeldingen laten zien
 # h = mail header aan de | (pipe) voeren
 # c = carbon copietje maken, zodat de gebruiker straks 
 #     de mail wel nog kan lezen als hij terug van vakantie is.
 # vacation.lock is nodig om problemen te voorkomen wanneer
 #     meerdere mails tegelijk aankomen.
:0 Whc: vacation.lock
 # Kijk of de mail aan de user (login naam) is geadresseerd.
 # Je kan deze regel weglaten als je op alle mails wil reageren,
 # ookal staat je gebruikersnaam niet in de TO: header
* $^To:.*\<$\LOGNAME\>
 # Reageer niet op mail die van mailinglijsten of mailerdaemons afkomstig is.
 # Dit voorkomt boze reacties en mail-loops 
* !^FROM_DAEMON
 # Kijk of in de mailheaders een X-Loop: you@email staat.
 # Als dat zo is, dan heb je al een keer ge-replyed en hoef je dat niet meer te doen nu.
 # Ook dit om mailloops te voorkomen
* !^X-Loop: your@own.mail.address
 # Is het nu later dan de vakantie begin datum?
* ? test $DATUM_NU -gt $VAKANTIE_BEGIN
 # En is de vakantie nog niet voorbij?
* ? test $DATUM_NU -lt $VAKANTIE_EINDE
 # Als aan al die voorwaarden is voldaan, dan wordt de mailheader aan formail gevoerd.
 # Deze kijkt of de afzender al in de cache file zit.
 # Er wordt slechts 1 maal een vakantie bericht gestuurd aan elke afzender.
| formail -rD 8192 vacation.cache
     # Het volgende filter recept wordt alleen gestart als in het vorige recept
     # de formail opdracht mislukte (naam niet gevonden in de cache).
     # Daarvoor is dus de 'e' optie.
     # h en c opties: zie 1e recept.
    :0 ehc
     # headers worden aan formail gevoerd.
     # Voeg een mailheader Precedence: Junk toe
     # en een X-Loop: header (waarop in het 1e recept wordt gecontroleerd)
     # -r maakt een auto-reply header, de afzender komt daarbij in de To: header te staan.
     # Onder die mailheaders wordt jouw vakantie melding + signature geplakt.
     # Het geheel wordt dan gevoerd aan sendmail, die 'm verstuurd.
    | (formail -rI"Precedence: junk" \
        -A"X-Loop: your@own.mail.address" ; \
     echo "I received your mail,"; \
     echo "but I won't be back until Monday."; \
     echo "-- "; cat $HOME/.signature \
    ) | $SENDMAIL -oi -t

# in plaats van al die echo regels zou je ook een externe textfile als vakantie bericht
# kunnen sturen. Vervang dan de eerste twee echo regels door:
 
     cat $HOME/vacantie.txt; \

*phew*... Is dat duidelijker :)

Verwijderd

Topicstarter
Het wordt er niet makkelijker op ;)

Verwijderd

Topicstarter
Als welk type bestand moet ik dat script eigenlijk opslaan? (Sorry, maar ik weet echt geen &#&^$# van linux)

  • ThE_ED
  • Registratie: Oktober 1999
  • Laatst online: 22-01 12:32

ThE_ED

Stuffed Animal

Op maandag 23 juli 2001 08:40 schreef Big Tazzz het volgende:
Als welk type bestand moet ik dat script eigenlijk opslaan? (Sorry, maar ik weet echt geen &#&^$# van linux)
Gewoon als ASCII file, ik denk dat het .procmail moet heten (gokje) en in je homedir moet staan.

Ik ben fan van dingen


Verwijderd

Op donderdag 19 juli 2001 16:43 schreef rvm het volgende:
Misschien een makkelijkere oplossing...
Het programma vacation
Interessante oplossing, alleen werkt het hier niet. In de maillog file krijg ik de waarschuwing "forward /home/im/.forward: Group writable directory" en kennelijk is dat een reden om dan geen forward uit te voeren.
Ik weet echter erg zeker dat deze directory NIET group writable is en ook de file is dat niet!
Wie weet raad?

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

Interessante oplossing, alleen werkt het hier niet. In de maillog file krijg ik de waarschuwing "forward /home/im/.forward: Group writable directory" en kennelijk is dat een reden om dan geen forward uit te voeren.
Ik weet echter erg zeker dat deze directory NIET group writable is en ook de file is dat niet!
Sendmail liegt niet. Of /home/im of /home is door grop writable. Ik heb dit probleem ook gehad, en sendmail heeft altijd gelijk gehad :)

Verwijderd

Op maandag 23 juli 2001 10:28 schreef igmar het volgende:
Sendmail liegt niet.
Klopt, maar iets duidelijker was toch wel handig geweest. Inderdaad: mijn /home bleek group-writable.

Inmiddels wel bij het volgende probleem beland:
code:
1
2
sh: vacation not available for sendmail programs
554 "|/usr/bin/vacation im"... Service unavailable

Ik dacht toch echt dat ik alle rechten nu goed had staan. :?

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

[quote]
Klopt, maar iets duidelijker was toch wel handig geweest. Inderdaad: mijn /home bleek group-writable.
[quote]

Idd, er is een directory in het volledige pad group-writable.
Inmiddels wel bij het volgende probleem beland:
code:
1
2
sh: vacation not available for sendmail programs
554 "|/usr/bin/vacation im"... Service unavailable
Dit heet Sendmail Restricted Shell. Als het goed is heb je een dir /etc/smrsh.Gooi in die dir dat vacation proggie, en pas de paden aan naar /etc/smrsh/vacation

  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Op maandag 23 juli 2001 09:41 schreef ThE_ED het volgende:

[..]

Gewoon als ASCII file, ik denk dat het .procmail moet heten (gokje) en in je homedir moet staan.
Bijna... hij moet .procmailrc heten. In je homedir uploaden als ASCII file.

  • ThE_ED
  • Registratie: Oktober 1999
  • Laatst online: 22-01 12:32

ThE_ED

Stuffed Animal

Op maandag 23 juli 2001 15:48 schreef rvm het volgende:

[..]

Bijna... hij moet .procmailrc heten. In je homedir uploaden als ASCII file.
Toch bijna goed ;) en dat met alleen win95 bij de hand. :P

Ik ben fan van dingen


  • Myrdhin
  • Registratie: April 2000
  • Laatst online: 11:11
Gedeeltelijk offtopic:
Het gebruik van "Ik ben op vakantie" mailtjes wordt niet door iedereen gewaardeerd. Hou er rekening mee dat als er de bewuste persoon op een mailinglijst zit iedereen op de mailinglijst ook dat "ik ben op vakantie mailtje krijgt"... Veel beter is het om tijden de vakantieperiode iemand aan te stellen die de mail kan overnemen.

  • ralfbosz
  • Registratie: December 2000
  • Laatst online: 19-08 09:09

ralfbosz

xm create bosz -c

Op maandag 23 juli 2001 17:12 schreef Myrdhin het volgende:
Gedeeltelijk offtopic:
Het gebruik van "Ik ben op vakantie" mailtjes wordt niet door iedereen gewaardeerd. Hou er rekening mee dat als er de bewuste persoon op een mailinglijst zit iedereen op de mailinglijst ook dat "ik ben op vakantie mailtje krijgt"...
Bekend probleem op werk ;) Is er weer eentje een paar weken weg en heeft die ipv reply to sender, reply to aan aangezet in Groupwise.

En dan is er natuurlijk nog eentje die dat ook heeft en krijg je mailtje naar mailtje naar mailtje binnen |:( Mail-bouncing ;)

rm -r *


  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Op maandag 23 juli 2001 17:12 schreef Myrdhin het volgende:
Hou er rekening mee dat als er de bewuste persoon op een mailinglijst zit iedereen op de mailinglijst ook dat "ik ben op vakantie mailtje krijgt"...
Hangt van de opzet van die mailing list af.
In bovenstaand procmail script wordt o.a. gecontroleerd op "Precedence: list, junk en bulk" headers (in dat FROM_DAEMON stuk). Die worden automatisch genegeerd.
Pagina: 1