Autoreply op email in Linux

Pagina: 1
Acties:

  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
Ik ben bezig een linux server aan het maken. Nu wil ik ook graag het volgende mogelijk hebben:

Iemand stuurt een mail naar autoreply@host.com. Sendmail ontvangt dit mailtje, en moet automatisch een reply sturen naar de persoon die het mailtje stuurde. Dit is vast wel mogelijk denk ik zo, zonder veel omwegen. Nu komt het lastigere, ik wil dat er niet een standaard mailtje terug gestuurd wordt, maar de uitvoer van een script. Is dit mogelijk? Het gaat om koers informatie van de aex.

  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Het volgende zou kunnen werken, mits jouw mailprocessor het .procmailrc bestandje in de home dir van de gebruiker "autoreply" kent. Ik gebruik sendmail, en dat gaat goed.).

**** /home/users/autoreply/.procmailrc ****
:0 h
*!^FROM_DAEMON
*!^X-Loop: autoreply@host.com
|(formail -r -A"X-Loop: autoreply@host.com"; ps -ef) | $SENDMAIL -t

Voor "ps -ef" kun je in principe alles gebruiken.

Suc6

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
* Eastern gebruikt iig ook sendmail. Moet je dan nog wel iets speciaals instellen?

En kan je ook ff uitleggen wat dat scriptje van jouw nu percies doet?

  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Op woensdag 12 december 2001 11:46 schreef Eastern het volgende:
* Eastern gebruikt iig ook sendmail. Moet je dan nog wel iets speciaals instellen?

En kan je ook ff uitleggen wat dat scriptje van jouw nu percies doet?
:0 h
:0 is verplicht, de h zorgt ervoor dat alle headers geparsed worden (is trouwens default).

*!^FROM_DAEMON
Indien het bericht van de MAIL_DAEMON afkomstig is, stopt deze processing. Oftewel, op systeem berichten wordt niet gereageerd.

*!^X-Loop: autoreply@host.com
Indien de headers de speciale "X-loop..." header bevatten stopt de processing.
Verderop wordt aan ieder automatisch verstuurd mailtje deze tekst toegevoegd. Komt het mailtje (of een reply erop) terug, dan wordt er niet weer een mailtje verstuurd.
(Stel dat iemand een vakantiemelding auto-replied [ben nu op vakantie, verwacht geen reactie voor 1-1-2002], dan moet jouw auto-replyer niet weer een bericht geven, afijn je kunt je voorstellen wat er gaat gebeuren neem ik aan).

|(formail -r -A"X-Loop: autoreply@host.com"; ps -ef) | $SENDMAIL -t

Voeg de speciale header toe, en doe dan iets wat uitvoer op stdout geeft. Dit is het te versturen mailtje, dus pipe dat door naar de mailhandler.

"ps -ef" kan vervangen worden door een willekeurig commando. Doe bijvoorbeeld "/usr/bin/ksh ~/defaultactie", en zet in de homedir van de "autoreply" gebruiker een scriptje "defaultactie". Dan kun je daarin je vreselijke gang gaan.

Geavanceerdere details ken ik niet, maar kun je vinden met "man procmailrc".

toevoeging

Misschien onduidelijk, maar de opbouw is als volgt:
"voorwaarde" "actie".

Indien aan een voorwaarde voldaan wordt, dan wordt actie uitgevoerd en stopt de verdere processing.
Indien er aan geen enkele voorwaarde voldaan wordt, dan wort de normale actie voortgezet (de mail wordt bij de gebruiker afgeleverd).

De tweede en derde regel bevatten enkel een voorwaarde, geen actie (dus indien dit, doe dan niks).

De vierde bevat geen voorwaarde, enkel een actie.

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
Hartstikke mooi. Zal het eens gaan proberen.