Postfix und C++



  • Hallo allerseits. Ich hoffe, das Forum ist richtig, schließlich betrifft das Thema viele "Rubriken"

    Ich möchte Emails mit Postfix direkt in eine SQL-Datenbank schreiben. Bisher habe ich es so gehandhabt, daß Postfix die Mail in eine Datei schreibt und ich sie mit PHP auslese.

    Allerdings bietet Postfix als Ziel auch Befehle an, deshalb wollte ich die Mails an ein C++_Programm jagen, welches dieses dann direkt in die Datenbank schreibt. Die Frage ist nun: Wie kommen die Daten denn da an? Ich habe mich zugegebenermaßen schon lange nicht mehr mit c++ beschäftigt, bin momentan etwas VC#-Verwöhnt. Ein kleines Minibeispiel würd mir schon helfen, oder auch ein link, wo ich schauen muss.

    Gibt es eigentlich Gründe, die dagegen sprechen, das programm mit vc++ zu erstellen?

    Danke im Voraus.

    P.S: Die Doku von Postfix sagt zu Thema "an programm weiterleiten":

    |command: Mail is piped into command. Commands that contain special
     characters, such as whitespace, should be enclosed between double quotes.
     See local(8) for details of delivery to command. When the command fails,
     a limited amount of command output is mailed back to the sender.
    


  • Also ich kenne Postfix nicht, aber es klingt so, als ob einfach
    die gesamte Mail an die Standard-Eingabe des C Progs übergeben werden würde.
    Mach doch mal einen ersten Versuch:

    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    int main(void)
    {
       char c;
       short h;
    
       h = open("/tmp/newmail", O_WRONLY | O_CREAT, 0644);
    
       while (read(STDIN_FILENO, &c, 1) > 0)
          write(h, &c, 1);
       close(h);
    }
    

    Dann siehst Du ja, was Postfix so liefert.



  • uli13 schrieb:

    Also ich kenne Postfix nicht, aber es klingt so, als ob einfach
    die gesamte Mail an die Standard-Eingabe des C Progs übergeben werden würde.

    Genau so ist es; das macht jedes vernünftige Programm so.


Anmelden zum Antworten