Avatar billede speedpete Nybegynder
26. februar 2007 - 13:19 Der er 9 kommentarer og
1 løsning

SmtpMail.Send ingen exception

.NET2.0  / winXP

SmtpMail.Send burde smide en exception men gør det ikke?

selvom strengen 'server' ikke giver mening, så kommer koden aldrig ind i catch-blokken:


void Sendmail(string body)
    {       
        string server = System.Configuration.ConfigurationSettings.AppSettings["SMTP"];
        string from = "test@test.dk";
        string to = TextBoxEmail.Text;
        string subject = "test";
        MailMessage message = new MailMessage();
        message.To = to;
        message.From = from;
        message.Subject = subject;
        message.Body = body;
        SmtpMail.SmtpServer = server;       
        try
        {
            SmtpMail.Send(message);
        }
        catch
        {
            Response.Write("Kunne ikke sende mail");
        }                   
    }
Avatar billede speedpete Nybegynder
26. februar 2007 - 13:20 #1
Nå nej, det jo .NET1
Avatar billede kalp Novice
26. februar 2007 - 13:22 #2
void Sendmail(string body)
    {        try
        { 
        string server = System.Configuration.ConfigurationSettings.AppSettings["SMTP"];
        string from = "test@test.dk";
        string to = TextBoxEmail.Text;
        string subject = "test";
        MailMessage message = new MailMessage();
        message.To = to;
        message.From = from;
        message.Subject = subject;
        message.Body = body;
        SmtpMail.SmtpServer = server;       
            SmtpMail.Send(message);
        }
        catch
        {
            Response.Write("Kunne ikke sende mail");
        }                   
    }
Avatar billede speedpete Nybegynder
26. februar 2007 - 13:27 #3
.. du putter det hele ind i try-blokken? Jeg har ikke prøvet, men hvorfor burde det hjælpe?
Avatar billede kalp Novice
26. februar 2007 - 13:34 #4
for hvis den allerede fejler du sender din besked så skal du jo fange fejlen der:)
eller ryger den ikke ned i din catch blok
Avatar billede kalp Novice
26. februar 2007 - 13:34 #5
"hvis den allerede fejler INDEN du sender din besked"

dvs. hvis det er ved første linje med din server så smider programmet en exception som du ikke fanger
Avatar billede speedpete Nybegynder
26. februar 2007 - 13:40 #6
aah... selvfølgelig. Men hvor er det så lige den kan fejle? Vel ikke

string server = System.Configuration.ConfigurationSettings.AppSettings["SMTP"];

?
Avatar billede kalp Novice
26. februar 2007 - 13:43 #7
void Sendmail(string body)
    {        try
        { 
        string server = System.Configuration.ConfigurationSettings.AppSettings["SMTP"];
        string from = "test@test.dk";
        string to = TextBoxEmail.Text;
        string subject = "test";
        MailMessage message = new MailMessage();
        message.To = to;
        message.From = from;
        message.Subject = subject;
        message.Body = body;
        SmtpMail.SmtpServer = server;       
            SmtpMail.Send(message);
        }
        catch(Exception a)
        {
            Response.Write(a.Message);
            Response.Write("Kunne ikke sende mail");
        }                   
    }
Avatar billede kalp Novice
26. februar 2007 - 13:44 #8
nu skriver den en lidt bedre besked.. kan sagtens gøres endnu mere specifik ved at udskrive stacktrace.

men det kan sagtens være

System.Configuration.ConfigurationSettings.AppSettings["SMTP"];


..måske skal du kalde tostring i .net 1.1

string server = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
Avatar billede speedpete Nybegynder
26. februar 2007 - 13:45 #9
ok, mange tak.
Avatar billede kalp Novice
26. februar 2007 - 13:48 #10
selv tak:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester