C# SmtpClient will nicht!

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.075
Ich wollte mal probieren ob ich eine E-Mail selbst absenden kann ohne irgendwelche Fremdclients für E-Mails. Komischerweise kann ich mit keinen meiner e-mail servern eine Verbindung aufbauen.

der Code ist so ähnlich wie in dem Beitrag hier

Mein Code

Code:
                MailMessage msg = new MailMessage(From, To, Subject, Text);
                SmtpClient smtp = new SmtpClient("smtp.googlemail.com", 25);
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl = true;
                smtp.Credentials = new System.Net.NetworkCredential("test@*****.com", "pass");
                smtp.Send(msg);

Bei diesen Code Kriege ich die InnerException
((System.Net.Sockets.SocketException)((System.Net.WebException)((System.Exception)(e)).InnerException).InnerException).Message

Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte 74.125.157.16:25

wenn ich SSL ausschalte bekomme ich immer die gleiche Exception. UseDefCreden = true.... das gleiche Problem.


Wenn ich den Port auf 465 umstelle mit UseDefCreden = true SSL = false
Meldung: Timeout
UseDefCreden=true SSL=true
Meldung: Timeout

naja UseDefCreden wird automatisch auf false gestellt sobald ich credentials verwende. also macht es keinen unterschied ob os true oder false ist.

ich komme trotzdem aber irgendwie nicht weiter. Es ist nicht nur googlemails was nicht funktioniert... sondern alle e-mail server die ich versucht habe. Also es kann nicht daran liegen dass ich in Japan bin?


EDIT Komischerweise kommt der mit dem PORT 587 und SSL klar. kann mir jemand erklären wieso die eine methode funktioniert und die andere nicht. In der verlinkten beitrag hat der typ geschaft mit SSL und Port 25 die E-Mails zu versenden.
hmm ganz komisch...
 
Zuletzt bearbeitet:
Also mein Client verwendet standardmäßig für SSL den Port 465. Der Port 25 wird für die unverschlüsselte Kommunikation für SMTP verwendet. Das ganze ist da abhängig vom Server, wie dieser konfiguriert wird/ist. Es kann auch den Fall geben das SMTP auf Port 25 mit SSL verwendet wird. Das hängt von der Konfig des Servers ab. Das UseCredentials wirkt sich scheinbar nur darauf aus ob User/Password benötigt werden um eine E-Mail zu versenden. Das ist aber mittlerweile dank Spam/Massenmailer quasi Standard bei den öffentlich zugänglichen Servern. Schau am besten nochmal nach, welche Verbindungseinstellungen googlemail (oder welchen Server du ansprechen möchtest) verwendet. Genauso musst du dann deinen Code auch einstellen. UseDefCredentials wirst du sicher auf False und die Credentials für deinen Account beim Server stellen müssen.

Habe mal eine kleine Testapp geschrieben die über googlemail eine Mail versendet:
Anhang anzeigen Mailer.zip

SSL auf Port 25 muss eingeschaltet sein und "From" und "User" müssen gleich sein, dann gehts mit meinem googlemail Account. Hoffe das hilft dir etwas weiter.
 
Zuletzt bearbeitet:
Noch eine Anmerkung:

Manche e-mail-Anbieter verlangen "POP before SMTP", dass heisst man muss sich zuerst am POP3-Server authentifiziert haben, bevor man eine mail versenden kann.
Also teste mal, ob das ganze funktioniert wenn Du dich zuvor in deinem mail-account angemeldet hast (z.B. mit Outlook oder per webmail-interface)
 
@lalas

AAH ok... aber googlemail funktioniert auch mit dem port 587 ohne pop3 auth. Die anderen konnte ich erst garnicht zum laufen bringen.
Ich habe auch mit thunderbird versucht die offenen port der e-mail herauszufinden aber dieser konnte ich dann nicht mehr in meinen programm verwenden.

Najut, wenn ich zeit habe werde ich noch mit eine POP3 oder IMAP Auth versuchen bevor ich E-Mail per SMTP versende.
 
Zurück
Oben