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");
myMail.To.Add(new MailAddress(emailLabel.Text));
myMail.SubjectEncoding = System.Text.Encoding.UTF8;
myMail.IsBodyHtml = false;
myMail.Subject = "bla bli....";
myMail.Body = "Hej" + "\n\n" +
"Du har modtaget et nyt dokument." + "\n\n" +
"Med venlig hilsen" + "\n";
SmtpClient smtp = new SmtpClient(ConfigurationManager.AppSettings["MailServer"]);
myMail.BodyEncoding = System.Text.Encoding.UTF8;
smtp.Send(myMail);
}
}
------
Og min GetUsersEmail metode:
-----
public static DataTable GetUsersEmail(string username)
{
DbCommand comm = GenericDataAccess.CreateCommand();
comm.CommandText = "GetUsersEmail";
DbParameter param = comm.CreateParameter();
param.ParameterName = "@UserName";
param.Value = username;
param.DbType = DbType.String;
comm.Parameters.Add(param);
DataTable table = GenericDataAccess.ExecuteSelectCommand(comm);
return table;
}
-----
Please help på engelsk. Og tak på forhånd.