首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.Net Web Api中使用MVCMailer

在ASP.Net Web Api中使用MVCMailer
EN

Stack Overflow用户
提问于 2015-07-21 18:04:44
回答 1查看 288关注 0票数 0

我正在使用ASP.Net Identity,并且在我的Web项目的AccountController中,我想向新用户发送验证电子邮件。我已经使用MVCMailer将我的电子邮件服务连接到ASP.Net身份。

代码语言:javascript
复制
public class EmailService : IIdentityMessageService
{
    private readonly IUserMailer _userMailer;
    public EmailService(IUserMailer userMailer)
    {
        _userMailer = userMailer;
    }
    public Task SendAsync(IdentityMessage message)
    {
        _userMailer.DeliverMessage(message.Body);
        // Plug in your email service here to send an email.
        return Task.FromResult(0);
    }
}

代码语言:javascript
复制
public class UserMailer : MailerBase, IUserMailer
{
    public UserMailer()
    {
        MasterName = "_Layout";
    }

    public virtual IMailMessage DeliverMessage(string message)
    {
        var mailMessage = new MailMessage();
        mailMessage.To.Add("hashemp206@yahoo.com");
        mailMessage.Subject = "Welcome";

        //ViewData = new System.Web.Mvc.ViewDataDictionary(model);
        PopulateBody(mailMessage, "Welcome");
        mailMessage.Send();
        return mailMessage;
    }

我的自定义ASP.Net标识在一个单独的项目中。正如您在上面看到的,EmailService依赖于IUserMailer接口。而IUserMailer的实现在另一个项目MyProject.MVCMailer中(这个项目是一个MVC项目)

在web api中的依赖项解析器中,我尝试解析此依赖项container.Bind<IUserMailer>().To<UserMailer>().InSingletonScope();

但是MVCMailerSystem.Web.MVC有依赖关系,并且只需要这个引用就可以初始化USerMailer

所以问题来了,我不想把System.Web.MVC添加到我的Web项目中。

如何在我的web api项目中不引用System.Web.MVC的情况下使用MVCMailer?

EN

回答 1

Stack Overflow用户

发布于 2015-07-21 18:19:47

我对你想要做的事情有点困惑,但如果我没理解错的话,你是想调用你的API,然后发送一封电子邮件。由于您没有从API向电子邮件传递任何内容(即使您传递了),因此只需调用您的API并返回一个响应对象。一旦MVC项目收到响应,就从MVC项目发送电子邮件。你的API应该知道你的MVC项目中的对象,除非有一个非常好的理由。把它们(你的MVC和API项目)想象成两个彼此不了解的独立实体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31536033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档