Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实施EmailService,在管理员回复邮件时通知用户_C#_Entity Framework Core_Asp.net Core Mvc - Fatal编程技术网

C# 实施EmailService,在管理员回复邮件时通知用户

C# 实施EmailService,在管理员回复邮件时通知用户,c#,entity-framework-core,asp.net-core-mvc,C#,Entity Framework Core,Asp.net Core Mvc,我正在寻找一些电子邮件服务,当管理员在他/她的帖子上回答时,它会通知用户。 我有一个HelDesk Web应用程序,它是在ASP.NET核心MVC中完成的,到目前为止,我已经讨论了哪个管理员可以回答用户问题。无论何时管理员在票证中回答,用户都应该在电子邮件中收到通知 [HttpPost] public IActionResult SendDiscussion(int ticketId, string message) { var userN

我正在寻找一些
电子邮件服务
,当管理员在
他/她的
帖子上回答时,它会通知用户。 我有一个HelDesk Web应用程序,它是在ASP.NET核心MVC中完成的,到目前为止,我已经讨论了哪个管理员可以回答用户问题。无论何时管理员在票证中回答,用户都应该在电子邮件中收到通知

[HttpPost]
        public IActionResult SendDiscussion(int ticketId, string message)
        {
            var userName = User.FindFirstValue(ClaimTypes.Email);
            var account = _db.ApplicationUsers.SingleOrDefault(a => a.UserName.Equals(userName));

            var discussion = new Discussion
            {
                DateAndTime = DateTime.Now,
                Content = message,
                TicketId = ticketId,
                UserId = account.Id,
                ApplicationUser = account
            };
            _unitOfwork.Discussion.Add(discussion);
            _unitOfwork.Save();
            return RedirectToAction("Details", new { id = ticketId });
        }
电子邮件应仅发送给投递票证的用户。目前我有大约10个用户,但这个数字将增加到100个用户。 我查看了这篇文章,但我不确定这是否是一个好的解决方案


任何能指导我并告诉我MailKit是用于此目的的好解决方案的人?

我建议使用
FluentEmail
库,它很容易集成并提供您想要的一切

以下是开源项目:

将此软件包安装到项目中时,它很容易使用:

public IActionResult SendDiscussion(int ticketId, string message)
{
    // Your code

    // Email variable should be passed as dependency injection or directly created here
    await email
        .To("test@test.test")
        .Subject("test email subject")
        .Body("This is the email body")
        .SendAsync();
}

谢谢@Emin的建议和帮助。我将尝试这个解决方案再问一个问题<代码>到(“test@test.test“”我应该只发送用户登录的电子邮件。如何做到这一点?我有ApplicationUser类,电子邮件应该只发送给提交帖子的用户。这是业务逻辑方面,您必须处理该部分以检索已登录的用户,并仅向这部分代码提供电子邮件。这里有一些说明: