ASP.NET MVC:如何使用控制器发送 html 电子邮件

作者:编程家 分类: 编程代码 时间:2025-07-11

ASP.NET MVC:使用控制器发送 HTML 电子邮件

在 ASP.NET MVC 中,我们经常需要发送电子邮件来通知用户或者提供一些重要的信息。本文将介绍如何使用控制器来发送 HTML 格式的电子邮件。我们将使用 .NET Framework 提供的 System.Net.Mail 命名空间来实现这个功能。

配置电子邮件设置

首先,在 Web.config 文件中配置电子邮件相关的设置。我们需要指定 SMTP 服务器的地址、端口号、身份验证信息等。以下是一个示例配置:

xml

在这个配置中,我们指定了一个 SMTP 服务器的地址为 smtp.example.com,端口号为 587。同时,我们还指定了发件人的地址为 sender@example.com,并提供了用户名和密码进行身份验证。enableSsl 属性指示是否使用安全套接字层 (SSL) 连接。

创建电子邮件模板

接下来,我们需要创建一个 HTML 模板,用来作为电子邮件的内容。可以在 Views 文件夹下新建一个名为 "EmailTemplates" 的文件夹,然后在该文件夹下创建一个名为 "Notification.cshtml" 的文件。以下是一个示例模板:

html

通知

重要通知

尊敬的用户,这是一封重要的通知邮件。

请注意查看并处理。

在这个模板中,我们使用了简单的 HTML 标签来创建邮件的内容。你可以根据实际需求进行自定义。

在控制器中发送电子邮件

现在,我们可以在控制器中编写代码来发送电子邮件了。首先,我们需要引入 System.Net.Mail 命名空间。然后,我们可以使用 SmtpClient 类和 MailMessage 类来发送电子邮件。以下是一个示例控制器代码:

csharp

using System.Net.Mail;

public class HomeController : Controller

{

public ActionResult SendEmail()

{

MailMessage message = new MailMessage();

message.From = new MailAddress("sender@example.com");

message.To.Add(new MailAddress("recipient@example.com"));

message.Subject = "重要通知";

message.IsBodyHtml = true;

message.Body = RenderViewToString("EmailTemplates/Notification.cshtml");

SmtpClient client = new SmtpClient();

client.Send(message);

return View();

}

private string RenderViewToString(string viewName)

{

ViewEngineResult viewResult = ViewEngines.Engines.FindView(ControllerContext, viewName, null);

ViewData.Model = null;

StringWriter stringWriter = new StringWriter();

ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, stringWriter);

viewResult.View.Render(viewContext, stringWriter);

viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);

return stringWriter.GetStringBuilder().ToString();

}

}

在这个示例中,我们创建了一个 MailMessage 对象,并设置发件人地址、收件人地址、邮件主题等属性。我们还将 IsBodyHtml 属性设置为 true,以指示邮件内容为 HTML 格式。接着,我们使用 RenderViewToString 方法将 HTML 模板渲染为字符串,并将其设置为邮件的内容。最后,我们使用 SmtpClient 类的 Send 方法发送邮件。

通过以上步骤,我们可以在 ASP.NET MVC 中使用控制器来发送 HTML 格式的电子邮件。我们首先配置了电子邮件的设置,然后创建了一个 HTML 模板作为邮件的内容,最后在控制器中编写代码来发送电子邮件。这样,我们就可以方便地向用户发送重要的通知或提供其他相关信息了。