Member 14743579 Ответов: 1

Я хочу получить электронную почту из базы данных и показать ее в переменной.


Я пытаюсь получить данные(например, электронную почту) из базы данных и использовать эти данные для отправки электронной почты

Что я уже пробовал:

context.AddParameter("@Username", model.UserName);
context.AddParameter("@Password", model.Password);
DataTable dtgetemail = context.getData("getemailforcoderesend", CommandType.StoredProcedure);
if (dtgetemail.Rows.Count == 1)
{
 context.AddParameter("@Username", model.UserName);
 context.AddParameter("@Password", model.Password);
 DataTable dtgetemailcode = context.getData("getemailverificationcode", CommandType.StoredProcedure);       //code edit on 29/10/2020


 if (dtgetemailcode.Rows.Count == 1)
 {
     //WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
     //WebSecurity.Login(model.UserName, model.Password);

     MailMessage msg = new MailMessage();
     SmtpClient smtp = new SmtpClient();
     MailAddress from = new MailAddress("info@service.com");
     StringBuilder sb = new StringBuilder();
     msg.IsBodyHtml = true;
     smtp.Host = "smtp.zoho.com";
     smtp.Port = 587;

     msg.To.Add(dtgetemailcode.ToString());  //Error is here..

     msg.From = from;
     msg.Subject = "Registration success full on abc! ";
     msg.Body += "<html>";
     msg.Body += "<body>";
     msg.Body += "<table>";
     msg.Body += "<tr>";
     msg.Body += "<td>Thank you for registering on VibExChange. Please verify your email. </td>";
     //msg.Body += "<td>Thank you for registering on VibExChange. Your User Name and Password is : </td>";
     msg.Body += "</tr>";
     msg.Body += "<tr>";
     msg.Body += "<td>User Name : </td><td>" + model.UserName + "</td>";
     msg.Body += "</tr>";
     msg.Body += "<tr>";
     // msg.Body += "<td>Password : </td><td>" + model.Password + "</td>";
     msg.Body += "</tr>";
     msg.Body += "<tr>";
     msg.Body += "<td>Email Pin : </td><td>" + dtgetemailcode.ToString() + "</td>";   //Error is here..
     msg.Body += "</tr>";
     msg.Body += "<tr>";
     msg.Body += "<td>for Email Verification </td><td><a href='http://www.abc.com/Home/EmailVerification'> Click Here </a></td>";
     msg.Body += "</tr>";
     msg.Body += "<td>for more information </td><td><a href='http://www.abc.com/'> Click Here </a></td>";
     msg.Body += "</tr>";
     msg.Body += "</table>";
     msg.Body += "</body>";
     msg.Body += "</html>";
     smtp.UseDefaultCredentials = false;
     smtp.EnableSsl = true;
     smtp.Credentials = new System.Net.NetworkCredential("info@service.com", "ishant@78");
     smtp.Send(msg);
     msg.Dispose();
     Session.Abandon();
     Session.Clear();
     Session.RemoveAll();
     return Content("<script language='javascript' type='text/javascript'>alert('Email is not verified!!!'); window.location.href ='http://www.abc.com/Home/EmailVerification';</script>");
     //return RedirectToAction("EditUserProfile", "Home");
     //return RedirectToAction("EmailVerification", "Home");
 }

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Что вы пытались сделать, чтобы выяснить, почему?
Есть ли какие-либо сообщения об ошибках, и если да, то где и когда? Что вы сделали, чтобы это произошло?

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. Ну же, вы задали более чем достаточно вопросов, чтобы знать, что вам нужно дать нам реальную информацию!

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Member 14743579

На самом деле я пытаюсь получить идентификатор электронной почты пользователя из базы данных, когда пользователь пытается войти в свою учетную запись. После этого я отправил письмо пользователю.
наконец я получил решение с помощью сеанса.

Richard Deeming

Похоже, вы храните пароли в виде обычного текста. Не делай этого.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

1 Ответов

Рейтинг:
0

Richard Deeming

Цитата:
DataTable dtgetemailcode = ...;
...
msg.To.Add(dtgetemailcode.ToString());
Переменная dtgetemailcode это DataTable. Зовущий .ToString() на этой переменной будет возвращено это TableName Это будет либо пустая строка, либо что-то вроде Table1 Это совершенно очевидно . НЕ действительный адрес электронной почты.

Вам нужно использовать значение правильного столбца правильной строки таблицы. DataTable вместо.