Laden...

Email wird nicht gesendet, aber keine Exception

Erstellt von d.gierse vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.334 Views
D
d.gierse Themenstarter:in
115 Beiträge seit 2006
vor 12 Jahren
Email wird nicht gesendet, aber keine Exception

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

T
2.219 Beiträge seit 2008
vor 12 Jahren

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.

D
d.gierse Themenstarter:in
115 Beiträge seit 2006
vor 12 Jahren

hab ich auch gedacht. Der Code ist nicht kompliziert:


            string strBetreff = "Berichte";
            string strNachricht = "bla ";
            string strAn = user.Email;
            string strVon = "email@email.net";

            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

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo d.gierse,

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!"

T
2.219 Beiträge seit 2008
vor 12 Jahren

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

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.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo T-Virus,

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!"