Mail über SMTP
-
Hallo Zusammen,
ich muss die Daten aus meinem Programm per SMTP senden.
Dazu muss ich einen TCP-Stream öffnen und darein folgende Befehle schreiben:
telnet mail 25
HELO pc1.berlin.de
MAIL From:info@email.de
RCPT To:sender@email.de
DATA
"Hier kommt der Text"
.
quitAlso ich muss aus meinem Program das Telnet aufrufen und ihm einige Befehle übergeben.
So was funzt irgendwie nichtpf = popen("/usr/bin/telnet", "w"); fprintf(pf, "open mail 25\n"); fprintf(pf, "HELO ozwei8.tfh-berlin.de\n"); fprintf(pf, "MAIL From:<s702117@tfh-berlin.de>\n"); fprintf(pf, "RCPT To:<s702117@tfh-berlin.de>\n"); fprintf(pf, "DATA\n"); fprintf(pf, "Test für SMTP über TCP\n"); fprintf(pf, "quit");
Die Frage ist jetzt WIE geht das?
-
Verwende lieber die socket-API. Mit socket(2) erstellst Du einen Socket. Mit getaddrifno(3) bekommst Du eine addrinfo-Struktur aus deiner IP-Adresse und dem Port. Mit connect(2) baust Du die Verbindung auf. Du erhälst einen Datei-deskriptor, mit dem Du mit write(2) und read(2) kommunizieren kannst. close(2) schließt den wieder.
-
Benutze lieber das man: sendmail(1)-Programm, das quasi auf jedem Unix-System vorhanden ist.
Ansonsten benutz die Socket-API oder geb telnet zumindest an, zu welchem Server es sich verbinden soll.
-
btw. einen Blick in die FAQ hast du aber nicht geworfen?!
http://www.c-plusplus.net/forum/viewtopic.php?t=39503