20. december 2011 - 12:00Der 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; }
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); }
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.
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.
Synes godt om
Ny brugerNybegynder
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.