1

Web サイトに登録したときに設定された Email と UserId を使用するように MVCMailer を設定しようとしています。ストック MVC フレームワークを使用してユーザー登録フレームワークをセットアップしたため、ASPNETDB.MDF DB を使用して電子メールのユーザー ID とパスワードを追跡しました。現在のユーザー ID と電子メールを DB から引き出す方法については、現在、MVCMailer がパスワードのリセット手順を含む電子メールの送信先を認識できるようにする方法に行き詰まっています。以下は、DBからデータを取得してメール送信機能に入れる私の試みです。メンバーシップという単語の下に赤い波線があるので、間違っていることはわかっています。

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

もう 1 つの可能性は、コントローラー アクションから電子メールを送信し、現在接続しているユーザーに関する情報をパラメーターとして渡すことです。

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 に答える