Mails versenden mit System.Net.Mail

Codeknecht

Grünschnabel
Hallo und guten Morgen,

ich möchte mit einem kleinen c# Programm Mails versenden, soweit funktioniert das mit der System.Web.Mail recht gut. ihc verwende dazu einen Testemailaccount bei web.de

MailMessage Message = new MailMessage();
MailAttachment attachment = new MailAttachment("C:\\mytext.txt");
Message.From = "sender@web.de";
Message.To = "empfaenger@web.de";
Message.Subject = "Testemail";
Message.Body = "das ist eine Testversendung";
Message.Fields.Add
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
Message.Fields.Add
("http://schemas.microsoft.com/cdo/configuration/sendusername", "sender@web.de"); Message.Fields.Add
("http://schemas.microsoft.com/cdo/configuration/sendpassword", meinpasswort);
Message.Attachments.Add(attachment);
SmtpMail.SmtpServer = "smtp.web.de";
SmtpMail.Send(Message);

funktioniert soweit wunderbar.
Nun ist das ja eine veraltete Technik, vorgeschlagen wird die Benutzung der System.Net.Mail, Ok , hier also der Code, aber die Email wird nicht versendet, weil die Authentifizierung fehlschlägt. Sind die gleichen Angaben wie im oberen Beispiel.

SmtpClient smtp = new SmtpClient();
MailAddress from = new MailAddress("sender@web.de");
MailAddress to = new MailAddress("empfaengert");
MailMessage mes = new MailMessage(from.Address, to.Address,
"Schuld sind nur die Golgafrinchamleute", "");
smtp.Host = "smtp.web.de";
CredentialCache.DefaultNetworkCredentials.Password = passwort;
CredentialCache.DefaultNetworkCredentials.UserName = webbenutzer;
smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
smtp.Send(mes);

Die Mail wird nicht versendet, weil die Authentifizierung fehl schlägt.
Syntaxfehler in den Parametern oder Argumenten. Die Serverantwort war: Keine Authentifizierung.


Folgendes habe ich probiert:
- es ist kein Sonderzeichen im Benutzername/Passwort
- gesucht hier im Forum, bei Google und bei Microsoft

das erste Beispiel war mit asynchroner Versendung, aus Platzgrund hab ich hier den direkten Sendeweg gespostet.

Hat jemand eine Idee, wo mein Denkfehler liegt ?

Vielen Dank
 
vielen Dank fürs Lesen, manchmal muss man einfach seine Gedanken ordnen und es hier posten, dann fällt einem die Lösung ein.

Habe einfach nochmal den Programmcode von den Credentials gelöscht und neu eingetragen

System.Net.NetworkCredential credentials = new System.Net.NetworkCredential();
credentials.Password = this.textBox2.Text;
credentials.UserName = this.textBox1.Text;
smtp.Credentials = credentials;


So hat es dann funktioniert.
 
Zurück