E-Mail: Text einer Variable verschicken
-
Hallo,
Mein Code verschickt beireits erfolgreich eine E-Mail mit dem Inhalt "Hier soll was anderes stehen." Mein Problem, ich will, dass der Inhalt von nachicht.txt verschickt wird. Ich habe den Inhalt in der Variable line erfolgreich verpackt, doch wenn ich line bei send(); anstatt meinen Text hinschreibe, also:
send("mail.web.de","Mr Spiegelbild","armin.cn@web.de","armin.cn@web.de", "Hallo",line);Kommt:
230 F:\cpp\sch\r\main.cpp no matching function for call to `send(const char[12], const char[15], const char[16], const char[16], const char[6], std::string&)'
Dann habe ich gedacht ich muss es vllt. direkt da ändern, wo send() bestimmt wird, aber ich weiß da auch nicht was ich ändern soll. Ich fülle die Variable in beiden Abschnitten nun ja mit den Inhalt der Datei. Ist ja nur eine nötig. Welche und wie?
int main(int argc, char** argv) { // Text aus der Datei nehmen string line; ifstream myfile ("nachicht.txt"); getline (myfile,line); cout << line << endl; send("mail.web.de","Mr Spiegelbild","armin.cn@web.de","armin.cn@web.de", "Hallo","Hier soll was anderes stehen."); getchar(); return 0; } void send(char *smtpservr, char *fromname, char *fromid, char *toid, char *subject, char *message) { // Text aus der Datei nehmen string line; ifstream myfile ("nachicht.txt"); getline (myfile,line); cout << line << endl; TDATA td; strcpy(td.fromid,fromid); strcpy(td.name ,fromname); strcpy(td.serv ,smtpservr); strcpy(td.toid ,toid); strcpy(td.sub ,subject); strcpy(td.mes ,message); }
-
Versuch mal
line.c_str().Ein Text in Anführungsstrichen ist kein std::string, sondern ein const char*. Vermutlich erwartet deine Funktion einen char*. Die nächste Zeile der Fehlermeldung sollte dir sagen, was eigentlich erwartet wird.
-
SeppJ schrieb:
Ein Text in Anführungsstrichen ist kein std::string, sondern ein const char*.
Genau genommen sogar
const char[size]mitsizeals Anzahl der Zeichen inklusive Nullterminierung.