Mail aus C unter Unix
-
Hatte ich auch gelesen,
möchte es aber gerne über den system() aufruf machen - wäre das einfachste und muß ja auch gehen.
Olaf
-
Scheinbar hast Du die Hoffnung, die Daten von stdin direkt mit dem system-Kommando übergeben zu können. Dem ist nicht so. Schreibe Deine Daten ("To...") in eine temporäre Datei und rufe sendmail dann so auf:
system(("/usr/sbin/sendmail -t < temp.dat");
wenn Du auch Anhänge verschicken willst ist biabam ein nützliches Hilfsmittel:
http://www.clubmallorca.net/download/biabam-0.9.2.tar.gz
-
Ja, das sieht gut aus. Probiere ich sofort.
Danke !
-
Vielen Dank !
Funktioniert jetzt super !
Olaf
-
@ pfalzmarc
Wie muss die temp.dat dann ausschaun?
-
hmm..zum ersten is /usr/sbin/sendmail -t sehr komisch ;)...
ich persönlich würde /usr/lib/sendmail mit write support öffnen, aber mit popen. FILE *popen(const char *, const char *mode); findest du in der stdio.h
popen öffnet eine pipe zwischen deinem programm (dem aufrufenden programm), un dem comman das ausgeführt wird.
In diesen Filepointer den du zurückbekommst kannst du normal schreiben wie sonst auch überall, wenn du fertig bist machst du einfach ein pclose(FILE
und passt...
so is bei mir zumindestens gegangen... dazu brauchst aber n richtig konfiguriertes sendmail *g*... eh klar.
mail als befehl tät ich übrigens ned verwenden, weil das manche systeme ned haben, sendmail is sicher...
Wenn du ansonsten mails senden willst, kann ich dir libESMTP empfehlen (http://freshmeat.net/projects/libesmtp/?topic_id=28%2C809).
STi
[ Dieser Beitrag wurde am 04.04.2003 um 00:19 Uhr von STiAT editiert. ]
-
Original erstellt von James:
**@ pfalzmarcWie muss die temp.dat dann ausschaun?**
Ich schreibe so in die Temp:
strMail.Format("To: %s \n"
"From: %s \n"
"Subject: %s \n"
"%s \n"
".\n", strReceiver.GetBuffer(0),
strSender.GetBuffer(0),
strComment.GetBuffer(0),
strMessage.GetBuffer(0));
-
Danke! Was passiert jetzt, wenn man einfach irgendeine absender einträgt? geht das auch oder werden nur bestimmte durchgelassen?
-
@James
Grundsätzlich ist das möglich. Stellt sich nur die Frage ob der Server des Empfängers Deine Mail dann annimmt (AOL macht meines Wissens Probleme, wenn die Mails nicht von einem bekannten Server(also z.B. Deinem Provider) kommen).
-
noch was:
wie mache ich es, wenn ich in meiner email Doppelpunkte verwenden möchte? und zwar so:name: hans mustermann wohnort: musterhausen usw.
Da gibts bei mir nämlich Probleme, weils da anscheinend komplikationen mit To:, From: und Subjekt: gibt. Äußern tut sich das so, dass ich eine Mail versende ohne inhalt.