ID:   密码:   验证码:  
我的知识库
服务器-WEB服务器
服务器-FTP服务器
服务器-安全防护
IDC业务相关
网络编程-ASP
网络编程-PHP
网络编程-.NET
网络编程-XML
数据库-Access
数据库-Mssql
数据库-Mysql
主机相关问题
域名相关问题
邮局相关问题
付款相关问题
相关文本合同
游戏技术-传奇私服架设
游戏技术-传奇脚本信息
游戏技术-传世私服
常用软件下载
首页 >> 我的知识库>>网络编程-.NET>> .NET环境下几种不同的邮件发送解决方案  
.NET环境下几种不同的邮件发送解决方案
[ 作者:  | 文章来源: 网页教学网 | 点击数: 605 | 更新时间: 2007-10-13 17:40:35 ]

1、使用outLook提供的发送

如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用outLook的ActiveX 组件

南通服务器网

优点:开发简单

南通服务器网

缺点:依赖outlook组件,SMTP 邮件服务

南通服务器网

邮件发送的代码如下: 中国南通服务器网

以下为引用的内容:

  Private Sub Send()

Www_Spdns_com

    Dim outObj As New Outlook.Application() Spdns

    Dim Item As Outlook.MailItemClass 中国.南通服务器网

    Item = outObj.CreateItem(0)

中.国.南通服务器网

    Item.To = "lihonggen0@163.com "

Spdns~com

    Item.Subject = "hello"

Spdns@com

    Item.Body = "hell"

南通服务器网

    Item.Attachments.Add("C:\abc.txt") Www_Spdns_com

    Item.Send() Spdns

End Sub 中国.南通服务器网

中国南通服务器网

参考:使用 Microsoft Outlook 2002 开发解决方案 Spdns_com

http://www.microsoft.com/china/msdn/library/dndotnetout2k2/html/odc_oldevsol.asp 中.国南通服务器网

2、WEB开发,在ASP.NET中引用System.Web.Mail类 Www^Spdns^com

System.Web.Mail 命名空间包含使您可以使用 CDOSYS(Windows 2000 的协作数据对象)消息组件来构造和发送消息的类。邮件消息是通过内置在 Microsoft Windows 2000 中的 SMTP 邮件服务或任意的 SMTP 服务器来传送的。此命名空间中的类可以在 ASP.NET 或任何托管应用程序 南通服务器网

MailAttachment提供用于构造电子邮件附件的属性和方法。 中.国.南通服务器网

MailMessage提供用于构造电子邮件的属性和方法。

Spdns.com

SmtpMail提供用于使用 Windows 2000 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。 中国南通服务器网

邮件可以通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送。System.Web.Mail 命名空间中的类型可以在 ASP.NET 或任何托管应用程序使用。 中国南通服务器网

Smtp服务器的设置,现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务,在发送邮件的时候,需要验证用户信息,考虑Smtp用户验证问题 南通服务器网

如果Smtp服务器在本地计算机,发送速度很快的,基本上不用担心,如果不是本地服务器,那么发送的时候最好不要以此太多,一是速度问题,二是以此发送太多邮件,Smtp服务器可能认为是垃圾邮件而拒绝服务 Www_Spdns_com

代码如下:

Spdns@com

以下为引用的内容:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Spdns.com

    Dim mailObj As New MailMessage() 南通服务器网

Spdns^com

    Dim smtp As SmtpMail

Spdns^com

南通服务器网

    '定义SMTP服务器的名称

中国.南通服务器网

    smtp.SmtpServer = "smtp.163.com"

中国南通服务器网

    '定义邮件的发送地址 Www.Spdns.com

    mailObj.From = "lihonggen@163.com" 中.国.南通服务器网

中国南通服务器网

    '定义邮件的接收地址

Www_Spdns_com

    mailObj.To = " lihonggen0@163.com" 中国南通服务器网,为中文网南通服务器网

    mailObj.Subject = "主题" 中国.南通服务器网

南通服务器网

    '定义邮件的主体 Spdns^com

    mailObj.Body = "邮件主体!" 中国南通服务器网

Www@Spdns@com

    '邮件以 HTML的格式发送 中国南通服务器网,为中文网南通服务器网

    '定义邮件的有限级,在此设定为高 Www_Spdns_com

    mailObj.Priority = MailPriority.High 中国南通服务器网

Www~Spdns~com

    '给发送的邮件附加上一个附件

中.国.南通服务器网

    mailObj.Attachments.Add(New MailAttachment("c:\lihonggen.doc")) Spdns@com

    smTp.Send(mailObj)

Spdns~com

  End Sub

Spdns.com

中国南通服务器网

3、在VB.NET或C#开发Windows 应用程序中使用System.Net.Sockets 中国南通服务器网

也是基于SMTP协议

中.国.南通服务器网

一、SMTP协议简介

南通服务器网

1、客户端通过服务器的25端口建立TCP/IP连接 Spdns

服务器端: 220 server.com Simple Mail Transfer Service Ready

Www.Spdns.com

2、客户端使用“HELO”命令标识发件人 Spdns~com

客户端:HELO server.com Spdns^com

服务器端:250 server.com 中国南通服务器网

3、客户端发送MAIL命令,服务器端以OK作为响应表明准备接收 Spdns@com

客户端:MAIL FROM:

Spdns_com

服务器端:250 OK Spdns

4、客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件

中国.南通服务器网

客户端:RCPT TO:

中.国南通服务器网

服务器端:250 OK 南通服务器网

5、协商结束后用命令DATA发送发送邮件

Www.Spdns.com

客户端:DATA 中国南通服务器网

服务器端:354 Start mail input: end with . Www^Spdns^com

6、客户端以.表示结束输入内容一起发送出去

Spdns~com

客户端:Subject:  Spdns~com

内容 Spdns@com

. 南通服务器网

7、客户端用QUIT命令退出。 Spdns_com

客户端:QUIT

[南通服务器网]

服务器端:250 server.com closing transmission channel Spdns@com

优点:可以在此基础上开发出自己的组件,利用Sockets我们可以进行网络编程开发 Www_Spdns_com

缺点:程序量相对较多,发送邮件的代码如下:

南通服务器网

以下为引用的内容:

    Dim sendData As String Spdns.com

    Dim szData As Byte()

中国.南通服务器网

    Dim CRLF As String

Spdns.com

    CRLF = "\r\n"

Spdns.com

Spdns.com

    '创建与服务器25端口的连接 Www^Spdns^com

    Dim SmtpServ As New TcpClient(txtsmtp.Text, 25) Www~Spdns~com

    lstlog.Items.Clear() 中.国.南通服务器网

Spdns

    '显示服务器初始信息 中.国.南通服务器网

    Dim NetStrm As NetworkStream Spdns~com

    NetStrm = SmtpServ.GetStream()

中.国.南通服务器网

中国.南通服务器网

    Dim RdStrm As New StreamReader(SmtpServ.GetStream())

Spdns.com

    If RdStrm.ReadLine() <> "" Then lstlog.Items.Add(RdStrm.ReadLine()) 南通服务器网

    ' Spdns^com

    sendData = "HELO server " + CRLF 中.国.南通服务器网

    szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) Www^Spdns^com

    NetStrm.Write(szData, 0, szData.Length)

Www@Spdns@com

    lstlog.Items.Add(RdStrm.ReadLine())

中国南通服务器网,为中文网南通服务器网

    '标志发件人 Spdns~com

    sendData = "MAIL FROM: " + "<" + txtfrom.Text + ">" + CRLF [南通服务器网]

    szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())

Spdns_com

    NetStrm.Write(szData, 0, szData.Length)

Spdns_com

    lstlog.Items.Add(RdStrm.ReadLine())

Spdns.com

Www^Spdns^com

    '标志收件人

中国.南通服务器网

    sendData = "RCPT TO: " + "<" + txtTo.Text + ">" + CRLF

Spdns^com

    szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())

Spdns

    NetStrm.Write(szData, 0, szData.Length)

南通服务器网

    lstlog.Items.Add(RdStrm.ReadLine())

南通服务器网

中.国.南通服务器网

    '准备发送内容

Www_Spdns_com

    sendData = "DATA " + CRLF Spdns@com

    szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())

中国.南通服务器网

    NetStrm.Write(szData, 0, szData.Length)

中.国南通服务器网

    lstlog.Items.Add(RdStrm.ReadLine())

南通服务器网

Www^Spdns^com

    '发送主题 中国.南通服务器网

    sendData = "SUBJECT: " + txtsub.Text + CRLF

中国南通服务器网

    '发送内容

中国.南通服务器网

    sendData = sendData + txtmsg.Text + CRLF

南通服务器网

中国南通服务器网,为中文网南通服务器网

    NetStrm.Write(szData, 0, szData.Length)

南通服务器网

    lstlog.Items.Add(RdStrm.ReadLine()) Www_Spdns_com

中国.南通服务器网

中.国南通服务器网

    '退出

中.国南通服务器网

    sendData = "QUIT " + CRLF 南通服务器网

    szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray()) 中.国.南通服务器网

    NetStrm.Write(szData, 0, szData.Length)

Spdns^com

    lstlog.Items.Add(RdStrm.ReadLine())

Spdns~com

Www.Spdns.com

中国.南通服务器网

    '关闭连接 [南通服务器网]

    NetStrm.Close() 中国.南通服务器网

    RdStrm.Close()

Www_Spdns_com

    lstlog.Items.Add("连接关闭")

Spdns_com

    lstlog.Items.Add("发送成功") Spdns^com

南通服务器网

大家还可以参考:使用C# 创建邮件发送组件(SMTP) 中国南通服务器网

http://www.aspcool.com/lanmu/browse1.asp?ID=968&bbsuser=csharp 中国.南通服务器网

4、IIS SMTP自带的基本的发信组件CDONTS

Www_Spdns_com

你不必专门下载,微软已经提供了这个组件,只要安装了2000,NT的SMTP就会有的。

Spdns

优点:组件由操作系统自带

中国南通服务器网,为中文网南通服务器网

    Mymail.From = *** '信件发送者信箱

[南通服务器网]

    Mymail.To = *** ‘信件接收者信箱 Www^Spdns^com

    Mymail.CC = *** '抄送

Spdns~com

    Mymail.BCC = *** ’密件发送 中.国.南通服务器网

    Mymail.Subject = *** ‘信件主题 中国南通服务器网,为中文网南通服务器网

    Mymail.Importance = 2 中国南通服务器网

    Mymail.Send()

Www_Spdns_com

    Mymail = Nothing Spdns_com

Spdns

5、使用JMail组件

Spdns

Jmail具有以下特点:

南通服务器网

(1)可以发送附件;

南通服务器网

(2)详细日志能力,便于你查看问题所在;

中国南通服务器网,为中文网南通服务器网

JMail组件的常用属性: 中国南通服务器网

Body   邮件正文

中.国.南通服务器网

Logging   调用Log记录,供Debug用

Www_Spdns_com

Priority   邮件的优先程度,从1到5

中.国南通服务器网

Sender   发件人 Spdns

ServerAddress   SMTP服务器的IP地址或名称

中.国.南通服务器网

Subject   邮件标题

南通服务器网

JMail组件的常用方法:

中国.南通服务器网

AddAttachment   指定附件文件 中国南通服务器网

AddRecipient   加入一个收件人 Www@Spdns@com

AddRecipientBCC   隐藏的副本抄送,只有发件人和BCC收件人知道。 中.国.南通服务器网

AddRecipientCC   副本抄送 中.国.南通服务器网

Execute   送出邮件

中国南通服务器网,为中文网南通服务器网

    JMail.Subject = "subject." 南通服务器网

    JMail.Body = "body." Www@Spdns@com

    JMail.AddRecipient("bbbb@163.com")

中.国.南通服务器网

    JMail.AddAttachment("c:\go.gif")

Www^Spdns^com

    JMail.Priority = 3

Www_Spdns_com

    JMail.Execute() 南通服务器网

    JMail = Nothing Spdns~com

Www_Spdns_com

总结:选择何种方案,视程序的用途和需求而定,本文例出的几种方案,供大家参考。例如用友软件U8,调用outlook组件,一样整合到自己的软件中。我编写的管理系统,自己写组件(SMTP),功能同样强大,不过Coding的时间就长了! 中国南通服务器网

Tags:.NET 邮件 发送 方案
责任编辑:阿小



评论
收藏
推荐
打印
关闭
字体:+ -
纠错


Copyright © 1999-2007 诚信 合法 规范的南通服务器网 www.spdns.com 始建于1996
企业总机:400-618-5529(只收市话费) 未开通400地区:0513-83015999 / 84012988 / 84519829
上海亿流数码科技有限公司 地址:江苏省南通市如东电信局大楼3楼IDC运维部
《中华人民共和国增值电信业务经营许可证》沪B2-20060518号
信息产业部备案编号:苏ICP备05009350号
电子执照:沪企3102272090823