Forum: PC-Programmierung C# SMTP Server ansprechen mislingt, warum?


von romanua (Gast)


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();


        }

    }

}

von arc (Gast)


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");

von romanua (Gast)


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

von Bartli (Gast)


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.

von Bartli (Gast)


Lesenswert?

Besonders nett war daran vor allem, dass McAfee keine Meldung gab, dass 
da irgendwas blockiert wurde.

von romanua (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.