Avatar billede fanatic Nybegynder
16. februar 2006 - 14:17 Der er 13 kommentarer

MailForm i ASP .NET 2.0

Hej eksperter.
Jeg har lavet en simpelt mailform. Et udsnit af min code behind-fil ser således ud:

protected void Send_Button_Click(object sender, EventArgs e)
    {
        string name = Name_TextBox.Text;
        string email = Email_TextBox.Text;
        String comment = Comment_TextBox.Text;

        string to = "xxx.xxx@gmail.com";
        string subject = "Kontakt via hjemmeside";

        SmtpClient mailObject = new SmtpClient();
        mailObject.Host = "smtp.mail.dk";
        try
        {
            mailObject.Send(email, to, subject, comment);
        }
        catch (SmtpException ee)
        {
            Console.Out.WriteLine("Fejl: "+ee);
        }
    }
}

Efter at have uploaded koden på en mailserver, ser det ud til at virke men jeg modtager aldrig nogen email på den adresse jeg har angivet. Browseren skriver bare "færdig" forneden. Intet andet sker?

Hvorfor kommer mailen mon ikke frem?? Har det noget med smtp-serveren at gøre?
Avatar billede dr_chaos Nybegynder
16. februar 2006 - 14:23 #1
prøv lige at ændre din exception til

catch (SmtpException ee)
        {
          Response.Write("Fejl: "+ee.ToString());
        }

bare lige for at se om du får nogen fejl.
Avatar billede guidmaster Nybegynder
16. februar 2006 - 14:25 #2
Er du sikker på at den mailserver du har uploadet til nu også bruger smtp.mail.dk som smtp host?
Avatar billede fanatic Nybegynder
16. februar 2006 - 15:12 #3
dr_chaos>> tak, det var en smutter.

Guidemaster>> det ved jeg ikke. De oplyste det ikke i deres velkomstmail. De hedder web10.dk
Avatar billede dr_chaos Nybegynder
16. februar 2006 - 15:57 #4
du skal tage kontakt til dem.
prøv lige med
catch (Exception ee)
        {
          Response.Write("Fejl: "+ee.ToString());
        }

og se om du ikke får en fejl.
Avatar billede fanatic Nybegynder
16. februar 2006 - 22:00 #5
okay...hvis jeg lader en label på websiden om at udskrive en exception så får jeg følgende besked:

System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed. at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine) at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine) at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller) at System.Net.Mail.SmtpReplyReader.ReadLine() at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) at System.Net.Mail.SmtpClient.Send(String from, String recipients, String subject, String body) at _Default.Send_Button_Click(Object sender, EventArgs e).....
Avatar billede fanatic Nybegynder
16. februar 2006 - 22:04 #6
På denne side beskrives det samme problem: http://www.xerratus.com/2006/01/13/ASPNETSmtpClientSendFailure.aspx

hmmm...de nævner noget med en virusscanner.
Avatar billede fanatic Nybegynder
16. februar 2006 - 22:11 #7
Kan det mon virkelig betyde at webhotel-udbyderen ikke tillader sådan en form mail?
Jeg har været inde på flere forum'er hvor de beskriver løsningen som at deaktivere en antivirus på deres udviklingsserver.
Avatar billede fanatic Nybegynder
16. februar 2006 - 23:01 #8
Okay. Jeg har fundet en løsning.
Vælger jeg eks. smtp.cybercity.dk og en cybercity-adresse så sendes der en mail af sted korrekt.

Nu har jeg kastet mig ud i at få det til at virke med gmail. Det er lidt anderledes mht. koden der skrives pga. gmail benytter ssl.
Til dem der skulle være interesseret i opsætning til en gmail-account se her: http://forums.microsoft.com/msdn/showpost.aspx?postid=7575&siteid=1&PageID=1
Avatar billede fanatic Nybegynder
16. februar 2006 - 23:12 #9
Dette er en løsningen (C# kode) for at få det til at virke til gmail:

MailMessage msgMail = new MailMessage(email, to, subject, comment);
        SmtpClient smtp = new SmtpClient("smtp.googlemail.com", 587);
        smtp.EnableSsl = true;
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Credentials = new System.Net.NetworkCredential("???????@gmail.com", "password???");
        try
        {
            smtp.Send(msgMail);
        }
        catch (Exception ex)
        {
        }

Men er det sikkert at skrive sit password til gmail i koden som jeg har gjort herover? Det har jeg ikke selv overblikket over lige nu.
Avatar billede dr_chaos Nybegynder
19. februar 2006 - 18:26 #10
det er kun usikkert hvis nogen får fat i kildekoden.
Avatar billede fanatic Nybegynder
19. februar 2006 - 18:55 #11
Okay, så det ville være en udemærket (korrekt) måde at lave det på?
Avatar billede dr_chaos Nybegynder
19. februar 2006 - 19:02 #12
ja.
Men måske er det bedre at bruge en anden smtp så du netop ikke logger ind på google.
det er jo nemt at "fake" en email adresse.
Avatar billede fanatic Nybegynder
22. februar 2006 - 15:55 #13
okay...hvad mener du med fake?
Send lige et svar, ok?
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