使用asp.net发送邮件详解
来源:互联网 发布:act网络课程 编辑:程序博客网 时间:2024/06/05 19:01
王国荣的asp.net对发送邮件进行了一定的讲解但是不过全面。
在这篇文章里, 我们在尽可能广的范围广内讲解使用 ASP.NET发送电子邮件,包括选择电子邮件格式, 优先权, 附件和电子邮件内码。
现在让我们逐步探索使用ASP.NET发送电子邮件。我们将使用VB来说明例子, 但是我们最后的代码包括VB 和C # 。
Step1: 包括命名空间
System.Web.Util 命名空间在ASP.NET 里。这命名空间包含送电子邮件的所有必要对象。
对象是:
对象 总结
SmtpMail 代表邮件系统。发送电子邮件。
MailMessage 消息, 例如发信人地址, 收信人地址等。
MailFormat 格式,邮件的格式- HTML, 文本, 等
MailAttachment 代表电子邮件附件
MailEncoding enum 代表任一个内码譬如Base64 或UUencode 。
MailPriority enum 设置邮件优先权。价值: 高, 低, 正常
<% @Import Namespace = "System.Web.Util" %>
OK第一部已经完成了
步骤2: MailMessage 对象示例
声明MailMessage对象。
Dim mailObj AS new MailMessage
MailMessage 对象属性:
属性 描述
From 发信人的地址
To 收信人的地址
Subject 邮件主题
Body 邮件正文
cc 邮件副本接受人地址
bcc 邮件副本接受人地址比显示在邮件中(密件)
Priority 邮件的优先权
BodyEncoding 邮件内码
BodyFormat 邮件格式,html或文本
Attachments 邮件附件
以下的代码片断将展示MailMessage 对象。
mailObj.From = "abc@mydomain.com"
mailObj.To = Request.Form ("to")
mailObj.Subject = "subject of the mail"
mailObj.Body = "Message of the mail"
发送邮件使用SmtpMail 对象Send 方法。以下代码片断被使用送邮件
SmtpMail.Send(mailObj)
vb.net完整源代码
<%@page language="VB" %>
<%@Import Namespace="System.Web.Util" %>
<HTML>
<head>
<title>欢迎使用chenyangasp示例程序
</title>
</head>
<BODY>
<SCRIPT LANGUAGE="VB" RUNAT="server">
' 这个方法当提交时访问服务器
Sub SendMail (Obj As Object, E As EventArgs)
Dim mailObj AS new MailMessage
'设置邮件的发送及接收地址
mailObj.From = Request.Form("From")
mailObj.To = Request.Form("To")
mailObj.Subject = "Subject Of the Mail"
mailObj.Body = "Body of the Mail"
'html格式的邮件
mailObj.BodyFormat = MailFormat.Html
'设置为高级优先权
mailObj.Priority = MailPriority.High
'为邮件添加附件
'注意:这里我们创建了一个mailattachment对象添加一个附件到邮件中
mailObj.Attachments.Add(new MailAttachment("c:/test.doc"))
'使用SmtpMail对象发送邮件
SmtpMail.Send(mailObj)
End Sub
</SCRIPT>
<asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/>
<FORM METHOD="post" RUNAT="server">
Email Recipient: <INPUT TYPE="text" NAME="to"> <br>
Email Sender: <INPUT TYPE="text" NAME="from">
<INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail">
</FORM>
</BODY>
C#完整源代码
<%@page language="C#" %>
<%@Import Namespace="System.Web.Util" %>
<HTML>
<head>
<title>欢迎使用chenyangasp示例程序
</title>
</head>
<BODY>
<SCRIPT LANGUAGE="C#" RUNAT="server">
// 这个方法当提交时访问服务器
public void SendMail (Object Obj, EventArgs E)
{
MailMessage mailObj = new MailMessage();
// 设置邮件的发送及接收地址
mailObj.From = Request.Form("From");
mailObj.To = Request.Form("To");
mailObj.Subject = "Subject Of the Mail";
mailObj.Body = "Body of the Mail";
// html格式的邮件
mailObj.BodyFormat = MailFormat.Html;
// 设置为高级优先权
mailObj.Priority = MailPriority.High;
// 为邮件添加附件
// 注意:这里我们创建了一个mailattachment对象添加一个附件到邮件中
mailObj.Attachments.Add(new MailAttachment("c://test.doc"));
// 使用SmtpMail对象发送邮件
SmtpMail.Send(mailObj);
}
</SCRIPT>
<asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/>
<FORM METHOD="post" RUNAT="server">
Email Recipient: <INPUT TYPE="text" NAME="to"> <br>
Email Sender: <INPUT TYPE="text" NAME="from">
<INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail">
</FORM>
</BODY>
在.net中,.NET自带了发送邮件的功能,在VS2003中该功能已经封装进.NET Framework的System.Web.Mail的命名空间里了,在VS2005下更多的是利用System.Net.Mail命名空间了。
使用这个命名空间下的类,就可以很容易的构建一个发送邮件的程序,所需要的仅仅是在windows中架构好SMTP服务器。
System.Web.Mail命名空间:
这个命名控件下包含了以下的对象和三个属性:
包含的对象:
MailAttachment:与邮件附件有关的对象类
MailMessage :邮件主体
SmtpMail :负责发送邮件的SMTP协议。
属性列表:
MailEncoding :邮件的编码(Base64,UUEncode)
MailFormat :邮件的格式(Html超文本格式,Text纯文本格式)
MailPriority :邮件优先级(High, Medium, Low)
构建MailMessage对象:
MailMessage对象是邮件的承载主体,通常可以先构建好MailMessage对象,然后设置它的属性的方式来构建邮件程序,下面列出了的是一些常用的属性:
Attachments :邮件附件
Bcc :暗送地址
Body :邮件主体
BodyFormat :邮件格式(html,text)
Cc :抄送地址
From :发信人地址
Priority :邮件优先级(High, Medium,Low)
Subject :邮件主题
To :接收人地址
UrlContentBase :在HTML格式邮件中的URL编码方式
UrlContentLocation:邮件信息的优先级(High, Medium,Low)
使用SMTPMail发送邮件
构建好MailMessage对象之后,还需要使用另外一个对象-SMTPMail-来发送邮件,SMTPMAIL有一个很重要的方法:Send,该方法有两个不同用法,其中一个可以仅仅发送整个的MailMessage对象:
SmtpMail.Send(myEmailObject);
另外一个允许你分别指定发送者,收邮件地址,邮件主题,邮件主题,然后再发送出去:
SmtpMail.Send(strFrom, strTo, strSubject, strBody);
例子程序:
来看看下面这一个完整的例子,在这个例子中,使用System.Web.Mail命名空间,我们先创建一个MailMessage对象,然后设置部分属性,最后使用SmtpMail对象把它发送出去:
protected void Page_Load(object sender, EventArgs e)
{
// CREATE A MAIL MESSAGE
System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();
// SET MESSAGE PARAMETERS
myEmail.From = "chenjun@webjx.com";
myEmail.To = "admin@webjx.com";
myEmail.Subject = "Product Availability Notice";
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
myEmail.Body = "The sunglasses you expressed interest in are now in stock.";
//SEND THE MESSAGE
System.Web.Mail.SmtpMail.Send(myEmail);
//UPDATE STATUS
lblMailStatus.Text = "Mail successfully sent.";
}
<html>
<body>
<asp:Label id="lblMailStatus" runat="server" />
</body>
</html>
System.Net.Mail命名空间:
这个命名控件下包含了以下主要对象和主要属性:
包含的对象:
MailAddress:表示电子邮件发件人或收件人的地址
Attachment :表示电子邮件的附件
MailAddressCollection :存储与电子邮件关联的电子邮件地址
MailMessage :表示可以使用 SmtpClient 类发送的电子邮件
SmtpClient :允许应用程序使用简单邮件传输协议 (SMTP) 来发送电子邮件。
属性列表:
DeliveryNotificationOptions:描述电子邮件的传送通知选项
MailPriority :指定 MailMessage 的优先级
SmtpAccess :指定允许的简单邮件传输协议 (SMTP) 服务器访问级别
SmtpDeliveryMethod:指定如何发送电子邮件
SmtpStatusCode:指定使用 SmtpClient 类发送电子邮件的结果
构建MailMessage对象:
MailMessage对象是邮件的承载主体,通常可以先构建好MailMessage对象,然后设置它的属性的方式来构建邮件程序,下面列出了的是一些常用的属性:
Attachments :邮件附件
Bcc :暗送地址
Body :邮件主体
Cc :抄送地址
From :发信人地址
Subject :邮件主题
To :接收人地址
使用SmtpClient发送邮件
构建好MailMessage对象之后,还需要使用另外一个对象-SmtpClient-来发送邮件,SmtpClient有一个很重要的方法:Send,可以发送整个的MailMessage对象:
SmtpClient.Send(MailMessage);
在这个例子中,使用System.Net.Mail命名空间
static string strHost = String.Empty;
static string strAccount = String.Empty;
static string strPwd = String.Empty;
static string strFrom = String.Empty;
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="to">接收方邮件地址</param>
/// <param name="title">邮件标题</param>
/// <param name="content">邮件正文内容</param>
public static bool sendmail(string to, string title, string content)
{
strHost = "smtp.webjx.com"; //STMP服务器地址
strAccount = "abc@webjx.com"; //SMTP服务帐号
strPwd = "password"; //SMTP服务密码
strFrom = "chenjun@webjx.com"; //发送方邮件地址
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = strHost; ;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用户名和密码
MailMessage _mailMessage = new MailMessage(strFrom, to);
_mailMessage.Subject = title;//主题
_mailMessage.Body = content;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
try
{
_smtpClient.Send(_mailMessage);
return true;
}
catch
{
return false;
}
}
- 使用asp.net发送邮件详解
- 使用asp.net发送邮件详解
- ASP.NET 发送邮件代码(详解)
- 详解Asp.Net定时发送邮件方法
- 使用ASP.NET开发邮件发送系统
- ASP.NET+C#使用JMail发送邮件
- 使用ASP.NET 2.0 发送邮件
- 使用ASP.NET开发邮件发送系统
- 使用ASP.NET开发邮件发送系统
- 使用ASP.NET开发邮件发送系统
- 使用 ASP.NET 开发邮件发送系统
- 如何使用ASP .Net发送邮件
- asp.net发送邮件
- ASP.NET发送邮件
- asp.net发送邮件
- asp.net发送邮件
- Asp.net发送邮件
- asp.net 发送邮件
- Oracle10G学习笔记之九表空间的管理
- Oracle10G学习笔记之十表的管理
- 数据库优化
- 重装系统后,需要修改的地方
- Oracle10G学习笔记之末其他的杂碎
- 使用asp.net发送邮件详解
- 达内——java变量
- 问题集锦(11-15)
- [CSS]On having layout [关于IE6 CSS的hasLayOut问题]
- 潘爱民::介绍一本关于ATL的书《ATL Internals》 ----转
- 异常记录:org.springframework.orm.hibernate3.HibernateQueryException:PDIC_USER is not mapped [from PDIC_USER p where 1=1 ]; nested ex
- 动软代码生成器 修改源码 (2010-3-13 更新 修改了DAL 层生成插件和BLL层代码生成插件 )
- Tomcat虚拟目录设置
- 编写NT服务程序