1

我正在尝试设置 MVCMailer 以使用他们在网站注册时设置的电子邮件和用户 ID。我使用股票 MVC 框架来设置用户注册框架,因此 ASPNETDB.MDF DB 用于跟踪电子邮件用户 ID 和密码。我目前被困在如何从数据库中提取当前用户 ID 和电子邮件,以便 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;
        }

有谁知道如何做到这一点,我一直在寻找几个小时来了解如何在没有运气的情况下完成这一点。我看过的教程似乎都使用硬编码值来发送电子邮件。如果您需要任何其他代码,请告诉我,感谢您的帮助!

4

1 回答 1

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();
    }
}
于 2012-08-16T17:50:39.607 回答