[CentOS] Script dat automatisch e-mail verwerkt

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 02-03 08:01
Ik ben momenteel bezig om enkele taken binnen ons bedrijf te automatiseren. Eén daarvan is het automatisch verwerken van gestandaardiseerde e-mails met bijlagen die naar een specifieke inbox verstuurd zijn. Het is de bedoeling dat tweemaal per dag wordt gecontroleerd of er nieuwe e-mail is. Vervolgens wordt de bijlage (.pdf) eruit gehaald en in een specifieke map gezet. Daarna mag de e-mail verwijderd worden.

Nu is het zo dat ik eigenlijk geen enkele idee heb waar ik moet beginnen. Ik dacht eraan om een bash(?!) script te gaan schrijven (Ik heb daar nog geen ervaring mee) en deze met behulp van een cronjob 2x per dag te laten lopen.

Mijn vraag is dan ook; wie weet hoe je zoiets het beste kan aanpakken en zijn er meer/andere mogelijkheden om zoiets te automatiseren? Is bijvoorbeeld een oplossing middels PHP mogelijk, of moet zoiets met behulp van een Bash script gerealiseerd worden? Wellicht dat iemand weet of er al zulke scripts bestaan?

De webserver draait op CentOS.

Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 06-10 08:53
Bash kan, maar PHP is ook een optie. Wil je dit met een crontab doen, en dan een POP-box uitlezen, of via je MTA direct af laten leveren bij je programma?

Doet je CentOS bak ook je normale mail? Of heb je daar een andere server voor?

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • Li0nHeart
  • Registratie: September 1999
  • Laatst online: 12-07 10:31
Uitgaande van sendmail. Je kunt in je /etc/aliases een script aanroepen ipv een mailbox. Kun je zelfs real-time alles verwerken:

bv:

In /etc/aliases:

mailboxnaam "|/usr/local/bin/script"

En als je ook nog een kopie wilt houden, doe je:

mailboxnaam "|/usr/local/bin/script",mailboxnaam

En dan /usr/local/bin/script:
# Schrijf tijdelijk bestand
TIJDELIJK="/tmp/tijdelijk.$$"
cat > $TIJDELIJK

# Doe allerlei dingen met dit bestand, bv attachment decoden
/usr/bin/uudeview -i -o -p /tmp $TIJDELIJK > $TIJDELIJK.log
bestandsnaam=$(grep "Found" $TIJDELIJK.log | cut -d\' -f2)
echo "Bestand $bestandsnaam uitgepakt in /tmp
Ik gebruik altijd uudeview/uuenview voor decoden. RPMs zijn te vinden via google.

[ Voor 4% gewijzigd door Li0nHeart op 20-09-2010 15:51 . Reden: script opgeschoond ]


Acties:
  • 0 Henk 'm!

  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 02-03 08:01
Het is de bedoeling dat de bijlage (.pdf) op dezelfde server in een andere map wordt gezet. De CentOS server, wordt gebruikt voor onze website, het klantsysteem, en alle e-mail.

Mijn voorkeur gaat uit naar een PHP oplossing. De ideale situatie zou zijn dat (realtime) bij de nieuwe e-mails de bijlage eruit wordt gehaald en in een specifieke map wordt gezet en vervolgens een MySQL query uitgevoerd wordt. De e-mail mag niet verwijderd worden, maar moet worden verplaatst naar een speciale map zodat er altijd een backup van is.

Er wordt gebruik gemaakt van Exim 4.69. Op http://www.evolt.org/incoming_mail_and_php staat beschreven hoe ik /etc/aliases moet aanpassen. Nu staat er het volgende:

script: |/our/script.php

Als ik het bovenstaande invoer, dan wordt (neem ik aan) alle e-mail naar dat script gestuurd. Hoe kan ik ervoor zorgen dat alleen e-mail geadresseerd aan script@voorbeeld.nl wordt verwerkt?

Acties:
  • 0 Henk 'm!

  • Li0nHeart
  • Registratie: September 1999
  • Laatst online: 12-07 10:31
Als je maar 1 domein op die machine host dat is jouw voorbeeld van een aliases file voldoende.

Alle mail aan script@domein.nl wordt dan doorgestuurd naar het script.

Als je meerdere domeinen host, dan wordt voor alle domeinen de 'mailbox' script doorgestuurd naar het script.
Is ook wel weer op te lossen.. maar ik weet niet hoe je dat doet in exim. In sendmail zou ik de virtusertable gebruiken en script@domein.nl 'redirecten' naar bijvoorbeeld lokale gebruiker script_domein en deze naam in /etc/aliases gebruiken.

Als script kun je inderdaad van alles gebruiken, ook php.

  • axis
  • Registratie: Juni 2000
  • Laatst online: 26-01-2023
Ik gebruik hiervoor procmail.. Zodra de mail binnenkomt wordt de attachment door mimerip eruit gehaald en in een folder gezet.

Two advices for network troubleshooting.. learn to draw diagrams in Visio, and THINK IN LAYERS!

Pagina: 1