Seite 1 von 1

Problem bei Smtp mit QTcpSocket

Verfasst: 23. Februar 2007 18:33
von mcbeth
Hi,
ich weiß nicht, ob das Problem wirklich hier her passt.
Folgendes:
Ich versuche über QTcpSocket einen SMTP Befehl an einen Mailserver zu senden und erwarte eine Antwort. Leider kommt die nie.
Das Anmelden am Server hat wunderbar hingehauen, und ich bekomme eine Antwort von ihm. Allerdings habe ich die Befürchtung, dass ich beim Senden der Anfrage an den Server vielleicht nicht die richtige Codierung habe.
Hier der Code zum Senden der Anfrage:

Code: Alles auswählen


void CTcpSocket::sendRequest()
{
	QByteArray block;
	QDataStream out(&block, QIODevice::WriteOnly);
	out.setVersion(QDataStream::Qt_4_1);
	
	out  << "EHLO test.de";

	int temp=socket.write(block);
	socket.waitForReadyRead(-1);
};
Hier wartet dann das Programm auf das Signal readyRead(), das aber nie kommt. Hat von Euch vielleicht einer eine Idee, was ich falsch mache?
Ach so. Das Programm soll später die Anmeldung über SMTP machen und Mails versenden. Gruß

Verfasst: 23. Februar 2007 18:39
von upsala
Hast du dir eigentlich schon mal angeschaut, was überhaupt beim Server ankommt?
Ansonsten kannst du hier den Grund finden, warum dein Server nicht antworten will:
Format of the QDataStream Operators

Verfasst: 23. Februar 2007 18:44
von mcbeth
Wow,
sehr schnelle Antwort.
Leider kann ich nicht sehen, was beim Server ankommt, da ich irgend einen z.B. gmx benutze.
Es könnte daran liegen, dass ein Buchstabe eines QStrings 4 Byte lang ist.
Das werde ich gleich mal testen, aber der Server müsste ja dann eigentlich antworten, dass er das nicht verstanden hat.
So funktioniert das zumindest in Telnet.

Verfasst: 23. Februar 2007 18:59
von mcbeth
Ok,
ich habs!
Man muss natürlich auch ein "\n" mitschicken, sonst verarbeitet der Server
die Zeile ja gar nicht!
Jetzt kommt auch eine Antwort von ihm.
Vielen Danke