Toon posts:

[PERL] Dovecot traffic uitlezen uit mail.log per domein

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig een scritp voor Dovecot om te bouwen vanuit een Courier script. De reden waarom ik dit doe is omdat ik zelf vind dat Dovecot veel flexibeler, stabieler en sneller en... etc etc is dan Courier.

Wat het courier script doet is dat het kijkt naar de user cq domeinnaam en daar actie op uit haalt.

code:
1
if (/courierpop3login: LOGOUT.+user=.+?@(.+?), .*retr=(\d+).*/)


waar de bytes: $bytes = $2


Een willekeurige maillog regel waar dit script op reageert is

code:
1
Feb 13 07:03:52 ubuntu-server61 courierpop3login: LOGOUT, user=bspratt, ip=[::ffff:192.168.10.2], top=0, retr=2945, rcvd=34, sent=3154, time=0


nu zou "retr=2945" $2 moeten zijn volgens mij, alleen krijg ik niet helemaal duidelijk hoe de ifstatement dit doet.

Een regel van Dovecot is overigens heel anders:

code:
1
dovecot: POP3(info@domein.tld): Disconnected: Logged out top=0/0, retr=0/0, del=0/133, size=338370


Gezien de courier code zou ik zeggen voor Dovecot:

code:
1
if (/dovecot: POP3(.+user=.+?@(.+domain)): Disconnected: Logged out .*retr=(\d+).*/)


Ik kom alleen niet helemaal uit dit stuk code. Ik begrijp dat je de regel bouwt uit de variabelen user en ik denk dat domain ook bruikbaar is. Echter gaat het $2 zeker niet goed komen zo.

Kan iemand wat toelichting op dit stuk code geven voor wat extra duidelijkheid ? Ik wil namelijk proberen de IMAP versie volledig zelf te kunnen doen :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zegt de term regular expression je iets? $2 correspondeert gewoon met een match group. En als je een ( wil matchen moet je gewoon escapen (en dus \( doen). Er is geen 'variabele' user. Je matched een stuk op de string user (welke in Dovecot dus klaarblijkelijk voorkomt user=bspratt) en in Courier niet.

[ Voor 111% gewijzigd door RobIII op 11-03-2009 21:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Rob, dank je voor die link, ik was er nog niet geheel mee bekend, maar dit leert wel erg ghoed aan... mooie informatieve site.

Hier kan ik er zeker wel mee uit komen. In het uiterste geval post ik later nog wel een keer wat.

Perl is best leuk eigenlijk.

OK het lijkt erop dat Dovecot 1.0 welke nog steeds in hardy LTS zit wat problemen heeft omdat deze geen imap headers meegeeft of ínput/output op gebruik van IMAP.

Er zaten wat nadelen aan Courier dus ik ben genoodzaakt Dovecot te gebruiken wat prima bevalt... courier en imap is al geen feest, laat staan SSL.

Dan maar een upgrade naar Intrepid :)

[ Voor 41% gewijzigd door Verwijderd op 11-03-2009 23:25 ]