定期向用户发送电子邮件以进行密码更新

ana*_*and 5 asp.net asp.net-mvc datetime windows-services asp.net-identity

我有一个由Identityas 创建的表AspNetUser.

如果他没有更新密码六个月,我想向相应的用户发送电子邮件.我必须在60天后发送邮件,之后每3天发送一次邮件.我正在使用.net framework 4.5.2,asp.net,mvc 5,identity2
我的模型

    public class IdentityUser : IUser
    {
        public IdentityUser();
        public IdentityUser(string userName);
        .
        .
        public DateTime LastUpdateDate{get;set;}
    }
Run Code Online (Sandbox Code Playgroud)

我的控制器

public ActionResult PasswordSendMail()
{
    my code for checking six month...
}
Run Code Online (Sandbox Code Playgroud)

但邮件必须LastUpdateDate在每隔三天和之后的第60天发送一次.
如果我将代码放在控制器中,则应该调用该操作.我必须发送而不专门调用任何控制器.
我想向用户发送邮件,无论用户是否登录.当到达邮件的时间应该由后台进程发送.
如何windows service与当前项目集成.简要回答将有所帮助,
在此先感谢

Chr*_*att 6

这里有两个主要选项.第一个也是最简单的就是不用担心在一定的时间间隔内准确地通知用户,并且只要是时候更改密码就可以在登录时通知他们.您只需添加代码即可检查密码是否早于登录代码的定义时间范围,然后将其重定向到密码更改表单(如果有时间).或者,如果您真的想要了解它,可以创建一个动作过滤器来执行此检查并重定向到密码更改表单,这样用户在更新密码之前将无法执行任何其他操作.

如果您真的想按计划发送电子邮件,那么您需要能够按计划运行代码的内容.在这方面你有两个选择.首先,您可以创建一个包含此代码的控制台应用程序,然后只需使用Windows中的任务计划程序等操作即可按设定的计划运行它.其次,您可以使用Revalee之类的东西计划调用您的操作.