2015-08-16 1 views
0
I am storing the email of the user in session 
var v = //login query 
Session["LoggedUserEmail"] = v.email.ToString(); 

Then after login I want to send an email to the current logged in user and for that purpose I am passing Session["LoggedUserEmail"] in Msg.To.Add but its not working. 
This is what I am doing 

public void Execute(IJobExecutionContext context) 
     { 

      System.Net.Mail.MailMessage Msg = new System.Net.Mail.MailMessage(); 

      Msg.From = new MailAddress("[email protected]"); 

      Msg.To.Add(Session["LoggedUserEmail"].ToString()); 
      Msg.Subject = "Email"; 
      Msg.Body = "Hi"; 
      Msg.IsBodyHtml = true; 

      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 
      smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "xxxxxxx"); 
      smtp.EnableSsl = true; 
      smtp.Send(Msg); 
      Response.Write("Email Sent"); 
     } 

Я что-то не так? если да, то есть ли другой способ выполнить работу?Как отправить электронное письмо от текущего пользователя?

Я использую quartz.net и реализовал интерфейс IJob в своем контроллере mvc.

+0

Что находится внутри 'v'? –

+0

var v = db.userlogins.Where (a => a.email.Equals (log.email) && a.password.Equals (log.password)). FirstOrDefault(); –

+0

http://stackoverflow.com/users/1646540/sirwan-afifi Вы можете мне помочь? Я все пробовал. Сессия хранит в ней электронную почту, но когда я использую сеанс в Msg.To.Add, он не работает. –

ответ

1

Выполнение задания выполняется в другом потоке, отличном от того, который его планирует. Вы должны передать любые данные, которые вам нужны, используя JobDataMap при создании/планировании задания.

+0

Большое спасибо, ты спас мой день. –