C# SMTP Server ansprechen mislingt, warum?

Gast #499715
Lesenswert?

Hallo, ich programiere an einem SMTP client und versuche mein Account 
bei gmx.net anzusprechen.

Per Telnet geht es sehr gut:

c:\telnet mail.gmx.net 25

220 mail.gmx.net GMX Mailservices ESMTP {mp010}
quit
221 2.0.0 GMX Mailservices {mp010}

Connection to host lost.

Das gleiche versche ich programatisch zu machen aber es gibt den
folgenden Fehler in der
ersten Zeile(TcpClient mailclient = new TcpClient("mail.gmx.net", 25);)

Fehler:

A connection attempt failed because the connected party did not properly 
respond after a period of time, or established connection failed because 
connected host has failed to respond.


Hat jemand bitte eine Idee?








Hier ist das Program:

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace connect
{

    public class test
    {
        static void Main(string[] args)
        {

            TcpClient mailclient = new TcpClient("mail.gmx.net", 25);
            NetworkStream mailstream = mailclient.GetStream();
            StreamReader mailreader = new StreamReader(mailstream);
            StreamWriter mailwriter = new StreamWriter(mailstream);
            mailwriter.NewLine = "\r\n";
            mailwriter.AutoFlush = true;

            string mailline;

            do
            {
              mailline = mailreader.ReadLine();
            } while (!mailline.StartsWith("220 "));
            Console.WriteLine(mailline);
            mailwriter.WriteLine("QUIT");
            mailclient.Close();


        }

    }

}
Gast #499838
Lesenswert?

Idee nicht direkt, da der Code hier so funktioniert wie er sollte.
Falls das Net Framework 2.0 benutzt wird, könnte man auch den 
eingebauten SmtpClient zum Testen nehmen.

SmtpClient client = new SmtpClient("server", 25);
client.Credentials = new NetworkCredentials("user", "pass");
client.Send("from@example.com", "to@example.com", "TestSubject", 
"TestBody");
Gast #499935
Lesenswert?

Hallo arc,

Danke fuer die Anregung.

>Idee nicht direkt, da der Code hier so funktioniert wie er sollte.

Meinst Du, mein Code funktioniert bei Dir und Du bekommst

"220 mail.gmx.net GMX Mailservices ESMTP {mp010}" im DOS Fenster 
angezeigt?

mfg
Gast #499996
Lesenswert?

Hast du evtl. nen Virenscanner oder sowas in der Art installiert, der 
ausgehenden Mailverkehr von ihm unbekannten Programmen blockiert? Sowas 
hatten wir mal mit CruiseControl.NET (sollte Mails versenden) und 
McAfee. Ich weiss allerdings nicht mehr genau, zu was für 
Fehlermeldungen das führte.
Gast #500021
Lesenswert?

Ja, Danke, Leute, das war es.

Wenn ich das Program per Debug Taste in Visual Studio starte, wird der 
Traffic ohne jegliche Meldung von Sygate Firewall geblocked.

Wenn ich das Program per Mause Click starte, werde ich gefragt, ob ich 
den Traffic erlauben moechte.

Nach Freigabe bekomme ich "220 mail.gmx.net GMX Mailservices ESMTP 
{mp010}" im DOS Fenster.

Danke nochmals.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren