一起谈.NET技术,ASP.NET MVC 3 Beta初体验之实用的WebMail

简介:   Asp.net MVC 3 Beta中提供了非常实用发送邮件的组件:WebMail。我试用了一下,和System.Web.Mail类似。这篇文章将简单介绍一下这个组件的使用。通过分成不带附件的邮件发送和带附件的邮件发送两种情况进行讲解。

  Asp.net MVC 3 Beta中提供了非常实用发送邮件的组件:WebMail。我试用了一下,和System.Web.Mail类似。这篇文章将简单介绍一下这个组件的使用。通过分成不带附件的邮件发送和带附件的邮件发送两种情况进行讲解。用一个请求帮助的应用场景为例。

  不带附件的邮件发送

  首先定义Controller。EmailRequest用于请求一个发送邮件的页面,ProcessRequest用去处理发送邮件的请求,并在View中发送邮件。

代码
 
  
[HttpGet]
public ActionResult EmailRequest()
{
return View();
}

[HttpPost]
public ActionResult ProcessRequest()
{
return View();
}

  EmailRequest.cshtml代码如下:

代码
 
  
<! DOCTYPE html >
< html >
< head >
< title > 求助中心 </ title ></ head >< body >
< h2 > 发送邮件求助 </ h2 >
< form method ="post" action ="ProcessRequest" >
< div > 你的姓名:
< input type ="text" name ="customerName" />
</ div >
< div > 你的问题描述: < br />
< textarea name ="customerRequest" cols ="45" rows ="4" >
</ textarea >
</ div >
< div >
< input type ="submit" value ="Submit" />
</ div >
</ form >
</ body >
</ html >

   发送邮件的View:

 
 
@{
var customerName = Request["customerName"];
var customerRequest = Request["customerRequest"];
try
{
// 初始化
WebMail.SmtpServer = "smtp.126.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "zhuqi0";
WebMail.From = "zhuqi0@126.com";
WebMail.Password = "**********";
// 发送邮件
WebMail.Send(to:"zhuqi0@126.com",
subject: "来自 - " + customerName+"的求助",
body: customerRequest
);
}
catch (Exception ex )
{
< text >
< b > 邮件发送 < em > 失败 </ em > </ b >
代码中没有提供正确的SMTP服务名,用户名,密码等信息。
</ text >
}
}
<! DOCTYPE html >
< html >< head >
< title > 求助中心 </ title ></ head >< body >
< p > 非常抱歉听到你有麻烦,
< b > @customerName </ b > .
</ p >
< p > 关于下面问题的邮件已经发送给我们的客服,相关部门会及时处理。 </ p >
< p >< b > @customerRequest </ b ></ p ></ body ></ html >

  运行:

  发送成功页面:

  邮件通知:

  带附件的邮件发送:

  带附件的邮件发送类似,不过需要知道附加地址的列表,发送邮件的带附件的邮件代码如下:

 
 
@{
var customerName = Request["customerName"];
var subjectLine = Request["subjectLine"];
var fileAttachment = Request["fileAttachment"];
try {
// 初始化
WebMail.SmtpServer = "smtp.126.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "zhuqi0";
WebMail.From = "zhuqi0@126.com";
WebMail.Password = "**********";
// 创建包含附件的数组
var filesList = new string [] { fileAttachment };
// 添加附件和发送邮件
WebMail.Send(to: "zhuqi0@126.com",subject: subjectLine,
body: "File attached.
< br /> From: " + customerName,
filesToAttach: filesList);
}
catch (Exception ex)
{
< text >
< b > 邮件发送 < em > 失败 </ em > </ b >
代码中没有提供正确的SMTP服务名,用户名,密码等信息。
</ text >
}
}
<! DOCTYPE html >
< html >
< head >
< title > 求助中心 </ title >
</ head >
< body >
< p >< b > @customerName </ b > , 感谢你的支持. </ p > < p > 关于下面问题的邮件已经发送给我们的客服,相关部门会及时处理。 < b >
@fileAttachment
</ b >
file attached.
</ p >
</ body >
</ html >

  从上面的两种情况我们可以看到,WebMail和System.Web.Mail使用的方式是一样的,不过在Asp.net MVC 3 Beta中WebMail使用起来更简便了。

  第一步:初始化,指定邮件发送服务器。

  WebMail.SmtpServer = "smtp.126.com";    

  第二步:指定端口。

  WebMail.EnableSsl = false;  

  第三步:指定用户名。

  WebMail.UserName = "zhuqi0";     

  第四步:你的邮箱地址和密码。

  WebMail.From = "zhuqi0@126.com";       
  WebMail.Password = "********";   

  第五步:如果有附件指定附件地址。

  var filesList = new string [] { fileAttachment };

  第六步:邮件发送。

  WebMail.Send(to: "zhuqi0@126.com",subject: subjectLine,           
  body: "File attached. <br />From: " + customerName,
  filesToAttach: filesList); 

  总结:本文简单介绍了一下ASP.NET MVC 3 Beta中WebMail的使用。

  代码:http://files.cnblogs.com/zhuqil/MvcApplicationWebMail.rar

目录
相关文章
|
6月前
|
前端开发 Java Go
Spring MVC 中的数据验证技术
Spring MVC 中的数据验证技术
45 0
|
6月前
|
存储 开发框架 前端开发
asp.net与asp.net优缺点及示例
asp.net与asp.net优缺点及示例
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
41 0
|
1月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
29 0
|
1月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
61 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
开发框架 安全 搜索推荐
分享105个NET源码ASP源码,总有一款适合您
分享105个NET源码ASP源码,总有一款适合您
27 4
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
52 0
|
6月前
|
SQL 前端开发 Java
JSP个人信息管理系统myeclipse开发sql数据库BS模式java编程struts2技术mvc框架
JSP 个人信息管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助struts2技术mvc框架,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
56 0
|
6月前
|
SQL 前端开发 Java
JSP网上订餐管理系统myeclipse开发sql数据库BS模式java编程servlet技术mvc框架
JSP 网上订餐管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servlet技术mvc框架,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
39 0