MailMessage msg = new MailMessage();
msg.From = new MailAddress("XXX@gmail.com");
msg.To.Add("XXX@gmail.com");
msg.Subject = "Hello world! " + DateTime.Now.ToString();
msg.Body = "hi to you ... :)";
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Port = 465;
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("XXX@gmail.com", "XXXX");
client.Timeout = 20000;
try
{
client.Send(msg);
Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
msg.Dispose();
}
Console.Read();
https://support.google.com/a/answer/176600?hl=de
Fehlermeldung:
Fehler: Von der Übertragungsverbindung können keine Daten gelesen werden: net_io_connectionclosed.
Ich weiß es nicht was ich falsch mache. Kann mir jemand einen Tipp geben.
Nach fast 7 Jahren im Forum kann man erwarten, dass der Hilfesuchende die vollständige Fehlermeldung inkl. Message - und wenn vorhanden - die InnerException postet.
Als Hinweis: Google erwartet eine hohe Sicherheit von Apps beim Zugriff auf deren Mailsystem.
Kann aber in den Einstellungen (https://www.google.com/settings/security/lesssecureapps) deaktiviert werden Zugriff weniger sicherer Apps auf Ihr Konto zulassen
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
https://www.google.com/settings/security/lesssecureapps ist deaktiviert (vielleicht dauert es noch etwas bis die Einstellung greift).
Komplette Fehlermeldung habe ich oben nachträglich angepasst.
Wenn Du Credentials angibst, dann muss UseDefaultCredentials
auf false sein.
Macht ja ansonsten auch wenig sinn.
Edit: nicht gesehen, dass UseDefaultCredentials
doppelt ist.... 😭
Macht natürlich kein sinn..
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
ich würde mal Port 587 versuchen. (DefaultCredentials ist ja eigentlich auf false)
Falls nicht - auf folgender Website sieht man wies geht:
http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail
LG
Habe mit anderen Provider probiert, bei Google.com besteht das Problem immer noch.
Aber wenn es mit anderen Provider funktioniert, dann ist das Problem ja gelöst.
Ja, liegt an der App Security.
Wie bereits gesagt. Google hat das vor einigen Wochen hart eingeführt....
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
...Stelle ich das auf OFF Google Funktion. geht das auch **nicht **und viel schlimmer dann geht mein **Outlock **nicht mehr....
Problem wurde erstmal anders gelöst.
Es wäre im Sinne einer Gemeinschaft, wenn Du erzählst, wie das Problem gelöst wurde.
Dann muss der nächste nicht nochmal fragen. Alles ein Geben und Nehmen 😉
PS: Google hat nicht nur diese Einstellung für die Appsecurity...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Es wäre im Sinne einer Gemeinschaft, wenn Du erzählst, wie das Problem gelöst wurde.
Dann muss der nächste nicht nochmal fragen. Alles ein Geben und Nehmen 😉
Moin Mädels 😄,
da ich auch mit dem Google Zeugs zu kämpfen hatte, hab ich es tatsächlich doch noch geschafft es hinzubekommen
Emails über ne Desktop Anwendung zu senden. Dachte mir ich teile einfach meine Erkenntnisse mit euch.
** Schritt 1: IMAP aktivieren in den EMaileinstellungen.**
"Öffnen Sie Gmail auf Ihrem Computer.
Klicken Sie rechts oben auf "Einstellungen" Einstellungen und dann Alle
Einstellungen aufrufen.
Klicken Sie auf den Tab Weiterleitung & POP/IMAP.
Klicken Sie im Abschnitt "IMAP-Zugriff" auf IMAP aktivieren.
Klicken Sie auf Änderungen speichern."
**Schritt 2: ** Im Sicherheitsbereich eures Kontos "Zugriff weniger sicherer Apps" aktivieren.
**Schritt 3: ** Code einfach übernehmen und anpassen
try
{
MailMessage mail = new MailMessage();
mail.To.Add("Empfänger");
mail.From = new MailAddress("Absender");
mail.Subject = "Test!";
mail.Body = "Testmail";
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = new System.Net.NetworkCredential("Absender", "Passwort vom Absender");
smtp.Send(mail);
MessageBox.Show("mail Send");
}
catch (Exception ex)
{
Console.WriteLine (ex.ToString());
}
viel Spaß damit!
Ich wundere mich immer wieder, wie leichtfertig wichtige Sicherheitseinstellungen einfach deaktiviert werden, weil man nicht in der Lage ist (oder will) das Problem sauber zu lösen.
Sorry, habe ich kein Verständnis dafür. Hast du Zuhause auch das Türschloss ausgebaut, weil dir das mir diesen Schlüsseln zu kompliziert ist?
Kann sein, dass ich hier gerade etwas hart reagiere - muss aber meiner Meinung auch mal gesagt werden
Moin,
Ich hab echt kein Problem mit konstruktiver Kritik aber nur seine "Meinung" abladen!?!?!?
Ich meine OK versteh deinen Standpunkt der ja auch Sicherheitstechnisch durchaus berechtigt ist und nicht unter Bullshit fällt
und den ich auch mit dir definitiv teile. Aber was soll man weiter mit deinem Post anfangen????????
Was möchtest du vermitteln außer das ich es nicht "richtig" gemacht habe und nicht verstanden habe was ich mir da eigentlich einbrocke?
Den Vergleich mit dem Türschloss find ich aber sehr gut 👍
Steht dort irgendwo das ich seit 10 Jahren Senior-Entwickler bin? Nein.
Steht dort irgendwo das dass die ultimative Lösung ist? Auch nicht.
Kann es sein dass ich in den Anfängen stehe und nicht es einfach nicht besser weiß? Genau das is der Fall!
Kann es sein das ich nur auf die Lösung fokusiert war und den Sicherheitsaspekt gar nicht aufn Schirm hatte? Auch das ist richtig!
Kritisieren ist vollkommen ok, man nimmt ja auch was mit, wenn man einen Dialog führt. Aber keine Lösung oder Hinweise/Ableitungen anbieten wie man eine
saubere Lösung selber evaluieren kann, ohne zu hinterfragen was sich der gegenüber dabei gedacht hat und welchen Wissensstand er hat
ist einfach...........such dir was aus 😁
Hab ein privates Spaß-Projekt gestartet um Erfahrungen zu sammeln. Nein ich benutze Gmail nicht als meine Haupt - Emailadresse für Korrespondenz oder ähnliches.
Ich hab die Adresse allein für Testzwecke erstellt.
Wie würde denn eine saubere und vor allem sichere Lösung denn aussehen für dich Stefan.Haegele? Lieber einen anderen Provider nehmen?
Wie und mit welchem EMail Provider realisiert man einen sicheren Zugriff ohne Sicherheitsvorkehrungen auszuschalten in .NET, wenn GMAIL es einem so schwer macht?
Wenn du auf solche fragen eine Antwort hast, darfst du dich gerne weiter austoben 😁
Man sollte niemals die Macht eines Forums vergessen - auch schlechter/unsicherer Code wird dort gefunden und dann verwendet. Über eine Google Recherche mit den richtigen Keywords (ich habe mal gmail .net api versucht) kommen einige gute Artikel...
Aber was ist denn an seinem Code per se jetzt schlecht, oder unsicher?
Ich verstehs leider auch nicht.
Ja, Google hat die SMTP Schnittstelle als user-unsicher definiert; technisch unsicher ist nochmal was anderes.
Ich würds prinzipiell auch anders lösen; aber zB Drucker können oft gar nicht anders ihr Zeug versenden.
Aber am Code seh ich jetzt strukturell nichts, was irgendwie technisch == unsicher ist.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Aber was ist denn an seinem Code per se jetzt schlecht, oder unsicher?
Ich verstehs leider auch nicht.Ja, Google hat die SMTP Schnittstelle als user-unsicher definiert; technisch unsicher ist nochmal was anderes.
Genau das ist für mich der Punkt - es gibt mit der GMail API eine gute, saubere Lösung um das Problem zu lösen.
Ja aber Du kennst doch "das Problem" nicht, oder täusche ich mich?
Vllt programmiert er ja einen Drucker, der eben nur SMTP kann. Dann bringt Dir die API nichts.
Vllt programmiert er nur einen Spam Bot, der bewusst SMTP benutzen soll.
Vllt programmiert er nur ein Home Automatismus, der alle 10 Stunden was schickt.
Kommt halt immer drauf an.
Aber natürlich: die API ist der modernere Ansatz.
Technisch unsicher(er) nicht unbedingt. SMTP ist ein sicheres Protokoll.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code