Hallo Leute,
ich versuche mich schon eine Ganze Weile daran und stecke fest.
Bei
string line = clientStreamReader.ReadLine();
friert das Programm ein und ich habe absolut keine Ahnung wieso. Die IP Adresse stimmt, der Server ist erreichbar, denn telnet über die normale CMD von Windows funktioniert es.
Hier mein Code:
private long GetSizeAttachament()
{
long Size = 0;
TcpClient smtpTest = new TcpClient();
try
{
smtpTest.Connect(textBox1.Text, 25);
if (smtpTest.Connected)
{
NetworkStream ns = smtpTest.GetStream();
StreamReader clientStreamReader = new StreamReader(ns);
StreamWriter clientStreamWriter = new StreamWriter(ns);
clientStreamReader.ReadLine();
clientStreamWriter.WriteLine("EHLO somehost");
while (true)
{
string line = clientStreamReader.ReadLine();
if (line.StartsWith("250"))
{
if (Regex.Match(line, "250-SIZE (.*?)$").Groups.Count > 1)
{
Size = long.Parse(Regex.Match(line, "250-SIZE (.*?)$").Groups[1].Value);
break;
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Fehler: " + ex.Message);
}
smtpTest.Close();
return Size;
}
Habt ihr eine Idee? Danke schon mal für eure Vorschläge.
Gruß
trekki
Hast Du schon mal geschaut, was der Server tatsächlich antwortet.
Würde an Deiner Stelle Putty nehmen, Raw Connection und dann mal nachspielen, was Du machst. Alternativ mit Wirehshark schauen, was der Server antwortet.
Hallo weismat,
ja habe ich ja. Habe CMD gestartet. Befehl
telnet IPADRESSE 25
eingegeben und der Server antwortet mir. Kann dann auch den Befehl EHLO
absetzen. Das funktioniert alles.
Gruß
trekki
nein, hast du nicht.
Du siehst in Telnet ja nur die darstellbaren Zeichen.
Beim zweiten Schauen ist mir aufgefallen, daß Du keinen Flush machst - daran wird es wahrscheinlich liegen...
Hallo weismat,
vielen Dank für die Antwort! Das war es. Jetzt läufts einwandfrei.
Gruß
trekki