2012-08-16 2 views
1

MVCMailer가 웹 사이트에 등록 할 때 설정 한 Email 및 UserId를 사용하도록 설정하려고합니다. 스톡 MVC 프레임 워크를 사용하여 사용자 등록 프레임 워크를 설정 했으므로 ASPNETDB.MDF DB는 전자 메일 사용자 ID와 암호를 추적하는 데 사용됩니다. 현재 MVCMailer가 비밀번호 재설정 지침을 이메일로 보낼 위치를 알 수 있도록 현재 사용자 아이디와 이메일을 DB에서 가져 오는 방법에 관해서는 막혀 있습니다. 아래는 데이터를 DB에서 보내고 메일 기능을 보내기위한 나의 시도입니다. 나는 회원이라는 단어 아래에 빨간 색 불빛이 있기 때문에 내가 틀렸다는 것을 안다.MVCMailer with ASPNETDB 사용

public virtual MailMessage Welcome(string ADID) 
     { 
      var mailMessage = new MailMessage{Subject = "Welcome"}; 

      mailMessage.To.Add(membership.Email); 
      ViewBag.Name = membership.UserId; 
      PopulateBody(mailMessage, viewName: "Welcome"); 

      return mailMessage; 
     } 

아무에게도이 작업을 수행하는 방법에 대해 알고있는 사람이 있습니까? 지금은 행운을 얻지 않고이 작업을 수행하는 방법에 대해 몇 시간 씩 조사했습니다. 내가 보았던 튜토리얼은 전자 메일을 보낼 위치에 하드 코딩 된 값을 사용하는 것 같습니다. 다른 코드가 필요한 경우 알려 주시고 귀하의 도움에 감사드립니다!

답변

3

당신은 당신의 멤버 자격 공급자를 쿼리하여 가져올 수 :

using Mvc.Mailer; 

public class HomeController: Controller 
{ 
    private readonly UserMailer _mailer = new UserMailer; 

    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult SendEmailToNewUser() 
    { 
     var user = Membership.GetUser(); 
     _mailer.Welcome(user.Email, user.UserName).Send(); 
     return View(); 
    } 
} 
: 또 다른 가능성은 컨트롤러 액션에서 이메일을 보내 때문에 매개 변수로 현재 연결된 사용자에 대한 정보를 전달하는 것입니다
public virtual MailMessage Welcome(string ADID) 
{ 
    var mailMessage = new MailMessage{ Subject = "Welcome" }; 
    var user = Membership.GetUser(); 

    mailMessage.To.Add(user.Email); 
    ViewBag.Name = user.UserName; 
    PopulateBody(mailMessage, viewName: "Welcome"); 

    return mailMessage; 
} 

+0

잘 작동했는데,이 질문과 답변이 upvoted되어 다른 사람들이 방금 도와 준 전문가 답을 볼 수 있기를 바랍니다. – Goldentp