go2newlife的专栏

项目资源共享群53604708欢迎大家加入!本群人满,请加40534490或者53676277群

转载 基于.NET的邮件解决方案收藏

新一篇: 添加一个下拉框到DataGrid | 旧一篇: .NET环境下水晶报表使用总结

基于.NET的邮件解决方案
第一次开始使用.net的System.Web.Mail消息组件,觉得很好用,而且简单。但后来发现.net自带的SmtpMail不支持SMTP认证,而且许多许多SMTP服务器不只需要登陆验证,还对MAIL From作了验证(比如263),如果和登陆用的用户名不符也不能发信。再有就是pop3邮件的信息解析问题,比如说解析出中文。 总结起来邮件问题也就2个问题:
一是smtp的身份验证,二是pop3邮件的信息解析问题。
 
以上两个问题,也正是ms没有提供部分的核心问题。我也问过ms的专家,有关mail解决方案的问题,他们也没给我一个什么样答复。网上也有不少高手倾情奉献自己的源码,可上述的两个问题始终都没有(或我没在网上找到)。看有些coder们现在正在找这些,所以,还是把我的解决方案提供给大家,只是给大家一个参考。
 
用Jmail 组件:可以解决上述两个问题,Jmail组件(Ver 4.3)发送时提供身份验证,而且接收的信息解析问题也能得到很好解决!
 
 
  
    '发送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
欢迎指教!


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=13631
 

发表于 @ 2008年01月11日 00:34:00|评论(loading...)|编辑

新一篇: 添加一个下拉框到DataGrid | 旧一篇: .NET环境下水晶报表使用总结

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © go2newlife