2012-08-16 73 views
1

我試圖設置MVCMailer以使用當他們向網站註冊時設置的Email和UserId。我使用股票MVC框架來設置用戶註冊框架,因此ASPNETDB.MDF DB用於跟蹤電子郵件用戶ID和密碼。我暫時停留在如何將當前用戶標識和電子郵件從數據庫中取出,以便MVCMailer知道將密碼重置說明發送到何處。以下是我嘗試從數據庫和發送郵件功能中獲取數據的方法。我知道我錯了,因爲我的成員身份下面有紅色的小角。與ASPNETDB一起使用MVCMailer

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

您可以通過查詢你的成員資格提供取,

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; 
} 

另一種可能性是從一個控制器動作發送電子郵件,從而傳遞有關當前連接的用戶的參數信息:

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(); 
    } 
} 
+0

這很好,我希望這個問題和答案能夠得到upvoted,以便其他人可以看到你剛剛幫助我的專家答案! – Goldentp 2012-08-16 18:11:03