【问题标题】:Using MVCMailer with ASPNETDB将 MVCMailer 与 ASPNETDB 一起使用
【发布时间】:2012-08-17 01:56:05
【问题描述】:

我正在尝试将 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;
        }

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

【问题讨论】:

    标签: asp.net-mvc-3 sendmail mvcmailer


    【解决方案1】:

    您可以通过查询您的会员提供商来获取它:

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

    【讨论】:

    • 效果很好,我希望这个问题和答案得到支持,以便其他人可以看到您刚刚帮助我的专家答案!
    猜你喜欢
    • 2015-10-10
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多