#include <unistd.h>
#include <sys/wait.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>

int sendmail(char *to, char *from, char *subject,
             /*char *cc, char *bcc,*/ char *inhalt)
{
 FILE *pipe,*pfad;
 char pfad_sendmail[255];
 /*Wir ermitteln den Pfad zu sendmail*/
 /*ACHTUNG!!! Sollte nur als root funktionieren*/
 pfad=popen("which sendmail", "r");
 if(pfad == NULL)
  {
    fprintf(stderr,"Konnte keine Pipe zu \'which\' erstellen!\n");
    exit(0);
  }
 fscanf(pfad,"%s",pfad_sendmail);
 pclose(pfad);
 strcat(pfad_sendmail, " -n -oi -t");
 /*Den Pfad ist meistens /usr/sbin/sendmail */
 pipe=popen(pfad_sendmail, "w");
 if(pipe == NULL)
  {
    fprintf(stderr, "Konnte keine Verbindung zu sendmail aufbauen!n");
    exit(0);
  }
 /*In sendmail schreiben..........*/
 fprintf(pipe, "To       : %s"
               "From     : %s"
               "Subject  : %s"
               /*"Cc      : %s\n" */
               /*"Bcc     : %s\n"*/
               "%s",to,from,subject,inhalt);
 fflush(pipe);
 pclose(pipe);
 printf("Mail wurde erfolgreich an versendet an : %s\n",to);
 return 0;
}

int main(int argc, char **argv)
{
 char to[255],fr[255],sub[255],inhalt[8192],puffer[255];
 printf("Mail To   : ");
 fgets(to,255,stdin);
 printf("Mail from : ");
 fgets(fr,255,stdin);
 printf("Betreff   : ");
 fgets(sub,255,stdin);
 inhalt[0]='\0';
 printf("Inhalt    (beenden mit STRG+D) \n>");
 while(fgets(puffer,8192,stdin) != NULL)   {
    strcat(inhalt,puffer);
    printf(">");
    }
 sendmail(to,fr,sub,inhalt);
 return 0;
}
