Als ik een mail binnenkrijg met in de body een csv opgenomen, wordt deze afgekapt na 76 tekens (76e teken is "=") en wordt er vervolgd op de volgende regel. Nu wil ik deze csv uitlezen, een aantal regels eruit knippen en gebruiken en de rest van de regels retourneren naar de originele afzender.
Met grep ben ik er al achter hoe ik een bepaalde string vind en ik kan dus de start van de csv vinden (maar dat is het plaintext-mailtje wat in /var/mail/domijn/mailbox/new staat), vervolgens kan ik het einde van de file vinden en daartussen met een do while gaan kijken naar de juiste regels. De juiste regel die ik wil extracten wordt dan m.b.v. een if:
- $string = regel 1
- als het laatste teken "=" is, dan $string = substr $string, 0, -1
- $string2 = volgende regel
- als het laatste teken van de volgende regel "=" is, dan $string = $string + substr $string2, 0, -1
- herhaal dit tot laatste teken niet "=" is, dan $string = $string + $string2, export naar tempfile en verwijder de gebruikte regels
- herhaal tot je aan het eind van het document bent.
Klopt deze redenering? Of ben ik veel te moeilijk aan het denken? Kan dit veel makkelijker? Of is het überhaupt niet nodig als je het mailtje binnenhaalt met perl?
Met grep ben ik er al achter hoe ik een bepaalde string vind en ik kan dus de start van de csv vinden (maar dat is het plaintext-mailtje wat in /var/mail/domijn/mailbox/new staat), vervolgens kan ik het einde van de file vinden en daartussen met een do while gaan kijken naar de juiste regels. De juiste regel die ik wil extracten wordt dan m.b.v. een if:
- $string = regel 1
- als het laatste teken "=" is, dan $string = substr $string, 0, -1
- $string2 = volgende regel
- als het laatste teken van de volgende regel "=" is, dan $string = $string + substr $string2, 0, -1
- herhaal dit tot laatste teken niet "=" is, dan $string = $string + $string2, export naar tempfile en verwijder de gebruikte regels
- herhaal tot je aan het eind van het document bent.
Klopt deze redenering? Of ben ik veel te moeilijk aan het denken? Kan dit veel makkelijker? Of is het überhaupt niet nodig als je het mailtje binnenhaalt met perl?