Sende e-mail til brugere, hvis brugernavn står i en gridview på siden og bruges også af en SP
Hej - Jeg har et problem hvor jeg efterhånden i 2 uger prøver at løse og kan ikke. På en webform har jeg en ListBox (lbBrugernavn), der viser et antal UserNames. Når man vælge nogle af disse UserNames bliver dannet et gridview, der viser disse UserNames: Kode: ----- ... else { DataTable dt = new DataTable(); dt.Columns.Add("Selected"); for (int i = 0; i < lbBrugernavn.Items.Count; i++) { if (lbBrugernavn.Items[i].Selected) { DataRow dr = dt.NewRow(); dr["Selected"] += lbBrugernavn.Items[i].Text; dt.Rows.Add(dr); } gridUserNames.DataSource = dt; gridUserNames.DataBind(); } ...
Nu at jeg har et gridview med alle valgte UserNames, så vil jeg sende en e-mail til alle disse. Jeg har en stored procedure, der henter e-mails (kun en e-mail), når man passer UserName som parameter: SP: --- ... ALTER PROCEDURE [dbo].[GetUsersEmail] @UserName nvarchar(256) As Begin SELECT Distinct aspnet_Membership.Email FROM aspnet_Users INNER JOIN aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId CROSS JOIN FilerMinSide WHERE aspnet_Users.UserName = @UserName AND aspnet_Users.UserName <> 'admin' End ----
Så her er min kode, der ikke virker: --------------- public void SendMailTilUsers() { for (int i = 0; i < gridUserNames.Rows.Count; i++) { string username = gridUserNames.Rows[0].Cells[0].Text; DataTable usersEmails = new DataTable(); usersEmails = DataAccess.GetUsersEmail(username); gridEmails.DataSource = usersEmails; gridEmails.DataBind(); emailLabel.Text = gridEmails.Rows[i].Cells[0].Text; MailMessage myMail = new MailMessage(); myMail.From = new MailAddress("noreply@mmm.dk");
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Nu har jeg fundet ud af at sende mail. Men denne sender flere gange (hver gang til en bruger). Jeg skal have et måde at sende e-mail kun en gang til aller valgte brugere. Her er nuværende kode: ---- public void SendMailTilUsers() { for (int i = 0; i < lbBrugernavn.Items.Count; i++) { if (lbBrugernavn.Items[i].Selected) { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand("GetUsersEmail", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@UserName", lbBrugernavn.Items[i].Text); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { emailLabel.Text = reader.GetString(0); } } MailMessage myMail = new MailMessage(); myMail.From = new MailAddress("noreply@xxxx.dk");
myMail.Body = "Hej" + Constants.vbLf + Constants.vbLf + "Du har modtaget et nyt dokument." + Constants.vbLf + Constants.vbLf + "Med venlig hilsen"; SmtpClient smtp = new SmtpClient(ConfigurationManager.AppSettings("MailServer")); myMail.BodyEncoding = System.Text.Encoding.UTF8; smtp.Send(myMail); conn.Close(); reader.Dispose(); } }
:o)karsten_larsen
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.