.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
基于.NET的邮件解决方案

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

基于.NET的邮件解决方案

第一次开始使用.netSystem.Web.Mail消息组件,觉得很好用,而且简单。但后来发现.net自带的SmtpMail不支持SMTP认证,而且许多许多SMTP服务器不只需要登陆验证,还对MAIL From作了验证(比如263),如果和登陆用的用户名不符也不能发信。再有就是pop3邮件的信息解析问题,比如说解析出中文。 总结起来邮件问题也就2个问题:

一是smtp的身份验证,二是pop3邮件的信息解析问题。

 

以上两个问题,也正是ms没有提供部分的核心问题。我也问过ms的专家,有关mail解决方案的问题,他们也没给我一个什么样答复。网上也有不少高手倾情奉献自己的源码,可上述的两个问题始终都没有(或我没在网上找到)。看有些coder们现在正在找这些,所以,还是把我的解决方案提供给大家,只是给大家一个参考。

 

Jmail 组件:可以解决上述两个问题,Jmail组件(Ver 4.3)发送时提供身份验证,而且接收的信息解析问题也能得到很好解决!

 

以下是两个WEB Service 方法

 

    '发送Email

    <WebMethod()> Public Function Jmail_Send(ByVal fromEmailAddress As String, _

                        ByVal toEmailAddress As String, _

                        ByVal ccEmailAddress As String, _

                        ByVal bccEmailAddress As String, _

                        ByVal subject As String, _

                        ByVal body As String, ByVal MailServer As String) As Boolean

 

        Dim email As New jmail.Message()

        email.Logging = True

        email.Silent = True

        '   email.MailServerUserName = ""  'smtp服务器用户名

        '   email.MailServerPassWord = ""  'smtp服务器密码

        email.From = fromEmailAddress

        email.Subject = subject

        email.Body = body

        email.AddRecipient(toEmailAddress)

        If email.Send(MailServer) Then

            Return True

        Else

            Return False

        End If

    End Function

 

    '接收Email

    <WebMethod()> Public Function Jmail_Receivemail(ByVal UserName As String, _

                        ByVal Password As String, ByVal MailServer As String) As Boolean

 

        Dim email As New jmail.POP3()

        Dim MSG As New jmail.Message()

 

        email.Connect(UserName, Password, MailServer, 110)

 

        If email.Count() > 0 Then

            MSG = email.Messages.Item(1)

 

            Debug.Write(MSG.FromName)

            Debug.Write(MSG.Subject)

            Debug.Write(MSG.Date)

            Debug.Write(MSG.Body)

            Return True

        End If

        email.Disconnect()

    End Function

 

 

以上代码是利用Jmail发送、接收邮件代码的一个原形,大家可以在此基础上扩充。Jmail提供了强大的邮件发送及处理功能,你不用自己费太长的时间,就可以完成所有需要的功能,不是很好么?当然,你也可以自己写组件,接收邮件可以用Imports System.Convert来进行Base 64的处理,进行解码!但愿大家都能找到适合自己的解决方案!

 

Author:李洪根 lihonggen0

个人专栏:http://www.csdn.net/develop/author/netauthor/lihonggen0/

欢迎指教!




相关文章

相关软件