.NET环境下几种不同的邮件发送解决方案
2008-02-22 09:31:08来源:互联网 阅读 ()
如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用outLook的ActiveX 组件
优点:开发简单
缺点:依赖outlook组件,SMTP 邮件服务
Dim outObj As New Outlook.Application()
Dim Item As Outlook.MailItemClass
Item = outObj.CreateItem(0)
Item.To = "lihonggen0@163.com "
Item.Subject = "hello"
Item.Body = "hell"
Item.Attachments.Add("C:\abc.txt")
Item.Send()
End Sub
System.Web.Mail 命名空间包含使您可以使用 CDOSYS(Windows 2000 的协作数据对象)消息组件来构造和发送消息的类。邮件消息是通过内置在 Microsoft Windows 2000 中的 SMTP 邮件服务或任意的 SMTP 服务器来传送的。此命名空间中的类可以在 ASP.NET 或任何托管应用程序
MailAttachment提供用于构造电子邮件附件的属性和方法。
MailMessage提供用于构造电子邮件的属性和方法。
SmtpMail提供用于使用 Windows 2000 的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。
邮件可以通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送。System.Web.Mail 命名空间中的类型可以在 ASP.NET 或任何托管应用程序使用。
Smtp服务器的设置,现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务,在发送邮件的时候,需要验证用户信息,考虑Smtp用户验证问题
如果Smtp服务器在本地计算机,发送速度很快的,基本上不用担心,如果不是本地服务器,那么发送的时候最好不要以此太多,一是速度问题,二是以此发送太多邮件,Smtp服务器可能认为是垃圾邮件而拒绝服务
代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mailObj As New MailMessage()
Dim smtp As SmtpMail
'定义SMTP服务器的名称
smtp.SmtpServer = "smtp.XXX.com"
'定义邮件的发送地址
mailObj.From = "lihonggen@XXX.com"
'定义邮件的接收地址
mailObj.To = " AAA@XXX.com"
'定义邮件的暗送地址
mailObj.Bcc= "aa@sina.com"
'定义邮件的抄送地址
mailObj.Cc = "aaa@sina.com"
'定义邮件的主题
mailObj.Subject = "主题"
'定义邮件的主体
mailObj.Body = "邮件主体!"
'邮件以 HTML的格式发送
mailObj.BodyFormat = MailFormat.Html
'定义邮件的有限级,在此设定为高
mailObj.Priority = MailPriority.High
'给发送的邮件附加上一个附件
mailObj.Attachments.Add(New MailAttachment("c:\aa.doc"))
smTp.Send(mailObj)
End Sub
也是基于SMTP协议
一、SMTP协议简介
1、 客户端通过服务器的25端口建立TCP/IP连接
服务器端: 220 server.com Simple Mail Transfer Service Ready
2、 客户端使用“HELO”命令标识发件人
客户端:HELO server.com
服务器端:250 server.com
3、 客户端发送MAIL命令,服务器端以OK作为响应表明准备接收
客户端: MAIL FROM: <A@B.com>
服务器端: 250 OK
4、 客户端发送RCPT命令标识收件人,服务器端回应是否愿意为收件人接受邮件
客户端:RCPT TO: <c@d.com>
服务器端:250 OK
5、 协商结束后用命令DATA发送发送邮件
客户端:DATA
服务器端:354 Start mail input: end with <CRLF>.<CRLF>
6、 客户端以.表示结束输入内容一起发送出去
客户端:Subject: <CRLF>
内容<CRLF>
.<CRLF>
7、客户端用QUIT命令退出。
客户端:QUIT
服务器端:250 server.com closing transmission channel
缺点:程序量相对较多,
Dim szData As Byte()
Dim CRLF As String
CRLF = "\r\n"
Dim SmtpServ As New TcpClient(txtsmtp.Text, 25)
lstlog.Items.Clear()
Dim NetStrm As NetworkStream
NetStrm = SmtpServ.GetStream()
If RdStrm.ReadLine() <> "" Then lstlog.Items.Add(RdStrm.ReadLine())
'
sendData = "HELO server " CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
sendData = "MAIL FROM: " "<" txtfrom.Text ">" CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
sendData = "RCPT TO: " "<" txtTo.Text ">" CRLF
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash