在.net中接收邮件

   在VS.net2005中,没有使用POP3协议进行邮件接收的类。因此,要么使用TCP/IP类自己实现POP3协议,要么使用第三方

软件。自己实现POP3协议本身很简单,只需要进行连接、用户认证、发送命令、接收数据等,难点在于解析邮件内容。因为有一般

的邮件,有服务器退回的邮件,有附件的邮件,各种编码的邮件等,因此在这里介绍一个免费的第三方软件LumiSoft。

   下载或者查看LumiSoft的帮助,请参照下面的URL。

    http://www.lumisoft.ee/lswww/download/downloads/Net/

 

    LumiSoft功能强大,实现了TCP/IP、UDP、FTP、POP3、SMTP等等协议,而且很详细的帮助文件,类似于微软的MSDN。

    输入上面的URL,下载LumiSoft.Net.zip,解压缩。里面有C#的源程序,在Net/Net/bin/Release目录下有LumiSoft.Net.dll。

把这个DLL参照到自己的工程里面。然后就可以编程了。本文只使用其中的POP3_Client部分。

    VB.net的例子如下:

 

    Imports LumiSoft.Net.POP3.Client
    Imports LumiSoft.Net.Mail

    Public Function GetEmails(ByVal host As String, ByVal port As Integer, ByVal userName As String, ByVal password As String) As List(Of Mail_Message)
    

        Dim result As List(Of Mail_Message)
        result = New List(Of Mail_Message)    '初始化

        Try
            Dim gotEmailIds As List(Of String) = New List(Of String)  '用于判断是否重复邮件
            Dim pop3 As POP3_Client = New POP3_Client

            pop3.Connect(host, port)                                     '连接服务器
            pop3.Authenticate(userName, password, False)  '用户认证

            For Each info As POP3_ClientMessage In pop3.Messages   '循环取得邮件
                If Not gotEmailIds.Contains(info.UID) Then                      '邮件是否重复
                    gotEmailIds.Add(info.UID)

                    Dim bytes() As Byte = info.MessageToByte()                '取得邮件内容
                    Dim mimeMsg As Mail_Message = Mail_Message.ParseFromByte(bytes)    '解析邮件内容

                    result.Add(mimeMsg)                                                    '添加到列表中
                End If

                info.MarkForDeletion()                                                      '服务器上标记为删除
            Next

            pop3.Disconnect()                                                                '结束,断开连接
        Catch ex As Exception
            '错误处理

        End Try

        Return result
    End Function

     得到邮件列表后,就可以循环处理邮件了。或者保存到邮件,或者保存到数据库。由于Mail_Message已经对邮件进行了解析,

因此可以直接使用,非常方便。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值