archer2000
New Member
Hallo allerseits,
ich stöbere und lese schon seit einigen Tagen in diesem Forum, und auch anderen Quellen, doch leider kann ich keine Lösung für mein Problem finden.
ich wollte gerne einen Counter einbauen, welcher die "qmail-queue" aufrufe zählt (um z.B. eine Statistik zu führen). Dafür habe ich ein einfaches C++ Programm gechrieben, welches dies auch wunderbar erledigt. Das Dummy-Programm bietet nicht viel spannendes:
Die habe ich dann schön mit g++ kompiliert. Dann dachte ich mir, das ich diesen Counter doch einfach beim Aufruf von "qmail-queue" mit einbaue.
Gesagt getan.
Zuerst habe ich Backup der qmail-queue gemacht:
Im Anschluss erstmal ein Aufruf der Backup-queue durch meine neue erstellt:
Soweit sogut. Läuft wie erwartet genau wie zuvor.
Im nächsten schritt wollte ich nun mein Programm mit einbinden. Also erst zählen, dann qmail-queue Ausführen. Ausführung wie oben, nur mit folgender Änderung:
Die nun empfangenden Mails sind leer und liefern im Header folgendes:
Okay, dann versuchte ich es andersrum:
Nun die Quizfrage: Wie kann ich die beiden Sachen nacheinander in der qmail-queue aufrufen? Ich vermute ja, das ich den Return-Code meines C++ Programmes irgendwie anpassen muss.
Viele Grüße
Dennis
ich stöbere und lese schon seit einigen Tagen in diesem Forum, und auch anderen Quellen, doch leider kann ich keine Lösung für mein Problem finden.
ich wollte gerne einen Counter einbauen, welcher die "qmail-queue" aufrufe zählt (um z.B. eine Statistik zu führen). Dafür habe ich ein einfaches C++ Programm gechrieben, welches dies auch wunderbar erledigt. Das Dummy-Programm bietet nicht viel spannendes:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
// TODO: Counter
return 0;
}
Die habe ich dann schön mit g++ kompiliert. Dann dachte ich mir, das ich diesen Counter doch einfach beim Aufruf von "qmail-queue" mit einbaue.
Gesagt getan.
Zuerst habe ich Backup der qmail-queue gemacht:
cp qmail-queue qmail-queue.orig
chown root:qmail qmail-queue.orig
Im Anschluss erstmal ein Aufruf der Backup-queue durch meine neue erstellt:
/etc/init.d/qmail stop
echo '#!/bin/sh' >/var/qmail/bin/qmail-queue
echo '/var/qmail/bin/qmail-queue.orig' >>/var/qmail/bin/qmail-queue
chmod 4755 /var/qmail/bin/qmail-queue
/etc/init.d/qmail start
Soweit sogut. Läuft wie erwartet genau wie zuvor.
Im nächsten schritt wollte ich nun mein Programm mit einbinden. Also erst zählen, dann qmail-queue Ausführen. Ausführung wie oben, nur mit folgender Änderung:
echo '/var/qmail/bin/cnt | /var/qmail/bin/qmail-queue.orig' >>/var/qmail/bin/qmail-queue
Die nun empfangenden Mails sind leer und liefern im Header folgendes:
qmail 28082 invoked from network
Okay, dann versuchte ich es andersrum:
Das brachte ein "Undelivered Mail Returned to Sender" beim Versuch an die Adresse zu senden. In der Mail stand dann folgender Fehler:echo '/var/qmail/bin/qmail-queue.orig | /var/qmail/bin/cnt' >>/var/qmail/bin/qmail-queue
said: /bin/sh: /var/qmail/bin/qmail-queue.orig: Permission denied 451 qq
temporary problem (#4.3.0) (in reply to end of DATA command)
Nun die Quizfrage: Wie kann ich die beiden Sachen nacheinander in der qmail-queue aufrufen? Ich vermute ja, das ich den Return-Code meines C++ Programmes irgendwie anpassen muss.
Viele Grüße
Dennis