Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Email wird nicht gesendet, aber keine Exception
d.gierse
myCSharp.de - Member



Dabei seit:
Beiträge: 116

Themenstarter:

Email wird nicht gesendet, aber keine Exception

beantworten | zitieren | melden

Hallo,

ich versuche mit SmtpClient.Send() eine Mail aus meinem Code heraus zu versenden. Ich bekomme aber leider nie eine Exception, wenn die Email nicht gesendet werden konnte (habe zum Test mal falsche Zugangsdaten verwendet)

Kann ich im Code irgendwie prüfen, ob die Smtp-Verbindung steht und gültig ist?

Gruß Dominik
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1892
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Laut der MSDN Seite müsste es aber eine Exception(SmtpException) geben.
SmtpClient.Send

Etwas mehr Code wäre hilfreich um mehr sagen zu können.

Martin
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
d.gierse
myCSharp.de - Member



Dabei seit:
Beiträge: 116

Themenstarter:

beantworten | zitieren | melden

hab ich auch gedacht. Der Code ist nicht kompliziert:


            string strBetreff = "Berichte";
            string strNachricht = "bla ";
            string strAn = user.Email;
            string strVon = "[email protected]";

            using( MailMessage mail = new MailMessage())
            {
                MailAddress from = new MailAddress(strVon);
                mail.To.Add(strAn);
                mail.From = from;
                mail.Subject = strBetreff;
                mail.Body = strNachricht;
                mail.Attachments.Add(new Attachment(reportPath));

            
                SmtpClient client = new SmtpClient();
                
                client.Send(mail);
            } 
            return true;

Die Exception wird außerhalb der Funktion gefangen,
die Credentials liegen in der App.config unter System.net
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

Hallo d.gierse,
Zitat
Die Exception wird außerhalb der Funktion gefangen,
Tritt nun doch eine auf?

Sonst pack mal um das Send ein try-catch.


mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1892
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Vielleicht hilft es noch folgende Eigenschaft beim SmtpClient zu setzen:


client.UseDefaultCredentials = false;

Machen wir bei unserem SmtpClient, der Emails an Kunden verschickt, auch so.
Dann wird einfach nur noch die Send Methode aufgerufen und alles läuft :)

Zusätzlich kannst du noch an den Konstruktor des SmtpClients eine Adress und einen Port übergeben, was auch noch ein Problem sein kann wenn diese fehlen.
Bsp. kannst du dann den Default Smtp Port übergeben und sowas wie smtp.domain.de als Adresse.
Sonst wird der Client auf die Einstellungen deines Computers eingestellt.

Mehr dazu gibt es SmtpClient-Konstruktor


T-Virus
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von T-Virus am .
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

Hallo T-Virus,
Zitat
Sonst wird der Client auf die Einstellungen deines Computers eingestellt.
Um es zu präzisieren: Host und Port werden sonst von der app/web.config geladen od. wenn diese nicht da ist wird versucht in der machine.config zu schauen.


mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers