Avatar billede dk-morten Nybegynder
24. september 2007 - 08:40 Der er 8 kommentarer og
1 løsning

Hjælp til kontakt formular

Godmorgen eksperter.

Jeg har et problem med min kontakt formular. Den kommer med denne fejl:  No overload for method "SendMail" takes "6" arguments


Min c# kode ser således ud:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        SendMail(txtNavn.Text, txtAdresse.Text, txtBy.Text, txtPost.Text, txtMail.Text, dropDown.Text);
    }
    private void SendMail(string from, string body, string txtNavn, string txtAdresse, string txtBy, string txtPost, string txtMail, string txtdropDown)
    {
        string mailServerName = "owa.aats.dk";
        MailMessage message = new MailMessage(from, "mj85317@skole.aats.dk", "Skræderri", body);
        SmtpClient mailClient = new SmtpClient();
        mailClient.Host = mailServerName;
        mailClient.Send(message);
        message.Dispose();
    }
}



Nogen der evt. ved hvad der er galt?


På forhånd tak.
Morten
Avatar billede lasserasch Juniormester
24. september 2007 - 08:52 #1
Hej Morten.

Du udfører dette ved dit knaptryk :
SendMail(txtNavn.Text, txtAdresse.Text, txtBy.Text, txtPost.Text, txtMail.Text, dropDown.Text);

Men din funktion ser således ud :

private void SendMail(string from, string body, string txtNavn, string txtAdresse, string txtBy, string txtPost, string txtMail, string txtdropDown)

Du har flere fejl :

1. Den fejl du får, er fordi du ikke sender der korrekte antal parametre med, når du kalder metoden.
2. Som jeg kan se det, så ligger du ikke dine parametre de rigtige steder i dit metode kald. F.eks. ligger du "txtNavn.Text" ind som afsender e-mail addressen. Det vil klart give fejl når den forsøger at parse til en mail addresse.

Med mindre din afsender er blevet døbt med en e-mail addresse som navn i kirken.

/Lasse
Avatar billede dk-morten Nybegynder
24. september 2007 - 08:57 #2
Okay tak. Kan du evt. Vise mig hvordan du ville lave det?
Avatar billede kalp Novice
24. september 2007 - 09:22 #3
SendMail(txtNavn.Text, txtAdresse.Text, txtBy.Text, txtPost.Text, txtMail.Text, dropDown.Text,"","");
Avatar billede mikkel_sommer Nybegynder
24. september 2007 - 09:25 #4
Hvad med noget i stil med:

protected void Button1_Click(object sender, EventArgs e)
        {
            SendMail(txtMail.Text, createBody(txtNavn.Text, txtAdresse.Text, txtPost.Text, txtBy.Text, txtMail.Text, dropDown.Text));
        }

        private string createBody(string navn, string adresse, string postNr, string by, string mail, string dropDown)
        {
            return navn + "\r\n" + adresse + "\r\n" + postNr + " " + by + "\r\n" + mail + "\r\n" + dropDown;
        }

        private void SendMail(string from, string body)
        {
            string mailServerName = "owa.aats.dk";
            MailMessage message = new MailMessage(from, "mj85317@skole.aats.dk", "Skræderri", body);
            SmtpClient mailClient = new SmtpClient();
            mailClient.Host = mailServerName;
            mailClient.Send(message);
            message.Dispose();
        }

Her er sammesætningen af body skilt ad fra det andet så du derved kan anvende din SendMail til andre formål. Kan godt være du ønsker din body tekst i anden rækkefølge med den kan du bare bytte rundt som du ønsker.
Avatar billede lasserasch Juniormester
24. september 2007 - 09:28 #5
Kalp's kommentar vil løse din første fejl.

Mikkel sommers kommentar er det okay, men tror måske du skulle få din kode til at virke på din egen måde først, inden du begynder at udbygge den.

Det handler bare om at kalde din metode med de rigtige parametre, i den rigtige rækkefølge.

/Lasse
Avatar billede dk-morten Nybegynder
24. september 2007 - 09:32 #6
Tak mikkel sommer. Det virker nu. Men vil gerne have lidt forklaring på koden så jeg også forstår det helt. Der du skriver "\r\n" hvad gør den?
Avatar billede dk-morten Nybegynder
24. september 2007 - 09:35 #7
lasserasch -> Ja self, men jeg har bøvlet med det i noget tid, og har ikke kunne få det til at virke. Men prøver lige igen med min egen kode igen.
Avatar billede mikkel_sommer Nybegynder
24. september 2007 - 09:49 #8
"\r\n" er linieskift.

Det jeg har gjort er kun at lade SendMail tage 2 parametre, from og body. Dette gjorde jeg fordi det så ud til at det var de eneste du alligevel brugte i SendMail.

Bodyen bliver så lavet i createBody metoden som tager alle de tekster som skal ind i bodyen som parametre. Hvis det giver bedre overblik så kunne det også se sådan ud:

string body = createBody(txtNavn.Text, txtAdresse.Text, txtPost.Text, txtBy.Text, txtMail.Text, dropDown.Text);
SendMail(txtMail.Text, body);
Avatar billede dk-morten Nybegynder
19. september 2010 - 15:40 #9
ingen svar
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