Avatar billede mema Nybegynder
20. december 2011 - 12:00 Der er 5 kommentarer og
1 løsning

Sende flere mails som genereres i en DataTable

Hej - Jeg har en mærkeligt problem vedr. afsendelse af flere e-mails på engang. E-mail bliver dannet i en datatable, hvor jeg bagefter skriver rækkerne på en label adskilt med et ';' tegn. men jeg får følgende fejl:
"An invalid character was found in the mail header: ';'."

Her er min kode:
---------------
protected void SendMailTilRolle()
    {
        MailMessage myMail = new MailMessage();
        myMail.From = new MailAddress("noreply@xxx.dk");
        for (int i = 0; i < gridUserNames.Rows.Count; i++)
        {
            string rolenavn;
            rolenavn = ddlRoller.SelectedValue;
            DataTable rolleEmails = new DataTable();
            rolleEmails = Klasser.GetRolleEmail(rolenavn);
            gridEmails.DataSource = rolleEmails;
            gridEmails.DataBind();
            for (int j = 0; j < gridEmails.Rows.Count; j++)
            {
                lblEmailsRolle.Text += gridEmails.Rows[j].Cells[0].Text + ";";         
            }         
        }
        myMail.To.Add(new MailAddress(lblEmailsRolle.Text));
        myMail.SubjectEncoding = System.Text.Encoding.UTF8;
        myMail.IsBodyHtml = false;
        myMail.Subject = "Naturstyrelsens Driftcenter - Der er uploaded en ny fil for dig";

        myMail.Body = "Hej" + "\n\n" +
            "Du har modtaget et nyt dokument." + "\n\n" +
            "Med venlig hilsen" + "\n" +
            "Naturstyrelsen - Driftcenter";

        SmtpClient smtp = new SmtpClient(ConfigurationManager.AppSettings["MailServer"]);
        smtp.Send(myMail);
        myMail.BodyEncoding = System.Text.Encoding.UTF8;
    }

------
Tak for hjælpen på forhånd
Avatar billede keysersoze Guru
20. december 2011 - 12:21 #1
undlad at lav din lblEmailsRolle - læg i stedet din myMail.To.Add ind i din løkke og tilføj flere på dén måde.

Overvej dog om To er den rigtige property at benytte hvis du folk ikke skal kunne se hvem andre der har modtaget.

Jeg tvivler også på at din BodyEncoding har noget at skulle have sagt - du sætter den jo først efter du har afsendt.
Avatar billede mema Nybegynder
20. december 2011 - 13:25 #2
OK. Nu er herunder min ændrede version. Men nu får jeg:
"Cannot apply indexing with [] to an expression of type 'System.Web.UI.WebControls.GridView'"
--------------
protected void SendMailTilRolle()
    {
        MailMessage myMail = new MailMessage();
        myMail.From = new MailAddress("noreply@mim.dk");
        for (int i = 0; i < gridUserNames.Rows.Count; i++)
        {
            string rolenavn;
            rolenavn = ddlRoller.SelectedValue;
            DataTable rolleEmails = new DataTable();
            rolleEmails = Klasser.GetRolleEmail(rolenavn);
            gridEmails.DataSource = rolleEmails;
            gridEmails.DataBind();
            for (int j = 0; j < i; j++)
            {
                myMail.To.Add(new MailAddress(gridEmails[j].Cells[0].Text + ';'));           
            }         
        }
        myMail.To.Add(new MailAddress(lblEmailsRolle.Text));
        myMail.SubjectEncoding = System.Text.Encoding.UTF8;
        myMail.IsBodyHtml = false;
        myMail.Subject = "Naturstyrelsens Driftcenter - Der er uploaded en ny fil for dig";

        myMail.Body = "Hej" + "\n\n" +
            "Du har modtaget et nyt dokument." + "\n\n" +
            "Med venlig hilsen" + "\n" +

        SmtpClient smtp = new SmtpClient(ConfigurationManager.AppSettings["MailServer"]);
        smtp.Send(myMail);
    }
Avatar billede keysersoze Guru
20. december 2011 - 17:28 #3
Mon ikke du bare skal tage syntaksen fra dit første eksempel, altså gridEmails.Rows, og benytte det i din new MailAddress - og så samtidig fjerne indsættelsen af ; da de færreste emails slutter på det.
Avatar billede mema Nybegynder
20. december 2011 - 18:19 #4
Hej keysersoze - Nej det hjælper ikke. Jeg får compileringsfejl. Men jeg fandt denne her og det virker (nederst på siden): http://forums.asp.net/t/1403847.aspx/1?email+sending+application+to+multiple+recipients+in+asp+net+c+
Anyway, tak for hjælpeforsøg...

Lukker denne
Avatar billede mema Nybegynder
20. december 2011 - 18:20 #5
Svar
Avatar billede keysersoze Guru
20. december 2011 - 18:25 #6
Hvis syntaksen virker det ene sted gør den selvfølgelig også det andet sted - du har bare lavet for meget om fra dit spm til #2.
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

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