Foxtable(狐表)用户栏目专家坐堂 → 能有办法根据邮件的uid来下载附件吗


  共有2926人关注过本帖树形打印复制链接

主题:能有办法根据邮件的uid来下载附件吗

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
能有办法根据邮件的uid来下载附件吗  发帖心情 Post By:2018/12/10 11:19:00 [只看该作者]

老师,获取了邮件列表,有个 下载 的逻辑列,想要实现点击按钮,有 下载列 打钩的,下载对应的附件。
原来的例子是按第几封来下载附件的,但是如果他有删除,原来列表的第几封的值就与实际不相符了,
能有办法根据邮件的uid来下载附件吗?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20181210111704.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/12/10 11:26:00 [只看该作者]

Dim pop3Server As String = ""
Dim pop3Port As Integer = "995"
Dim pop3UseSsl As Boolean = True
Dim username As String = ""
Dim password As String = ""

Using pop3 As New LumiSoft.Net.POP3.Client.POP3_Client()
pop3.Connect(pop3Server, pop3Port, pop3UseSsl)
pop3.Login(username, password )
Dim infos As object = pop3.messages()
''msgbox(Infos.count)
Dim msgs As object = pop3.messages()
Dim i As Integer
'获取某邮件信息
For i=0 To 50
    '  If i<5 Then
    ''output.show(i)
    output.show("正在比对第" & i+1 & "封邮件")
    'try
    Dim dr As DataRow=DataTables("inbox").find("uid='" & msgs(i).uid & "'")
    If dr Is Nothing Then
        Dim messageBytes = msgs(i).MessageToByte
        Dim mime_message = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(messageBytes)
        'If i=2 Then  'i=Infos.count-1
        'output.show("收件完成!本次共接收" & i & "封邮件!")
        'End If
        output.show("共有" & Infos.count & "封邮件,正在接收第" & i+1 & "封")
        ''Application.DoEvents()
        ''output.show(i & ":" & mime_message.Subject)
        If mime_message IsNot Nothing  Then
            Dim fjs = mime_message.GetAttachments(True, True)
            Dim r As Row=Tables("inbox").addnew
            r("uid")=msgs(i).uid
            If mime_message.From(0).DisplayName="" Then
                r("发件人")= mime_message.From(0).Address
            Else
                r("发件人")=mime_message.From(0).DisplayName
            End If
            r("发件时间")=mime_message.Date
            r("主题")=mime_message.Subject
            r("附件数")=fjs.length
            'r("收件人")=_UserName
            'r("部门")=_UserGroup
            'If mime_message.BodyText IsNot Nothing Then
                'r("正文")=mime_message.BodyHtmlText
            'Else
                'r("正文")=mime_message.bodytext
            'End If
            r("发件地址")=mime_message.From(0).Address
            r("第几封") = i
            'r.locked=True
            ' r.save
            'For Each entity As object In fjs
                '''output.show(entity.Contentid)
                '''output.show(entity.ContentDisposition.Param_FileName)
                'If entity.ContentType IsNot Nothing Then
                    ''' Dim fileName As String = entity.ContentType.Param_Name
                    'Dim fileName As String= ""
                    'If entity.ContentType.Param_Name <> ""
                        'fileName  =entity.ContentType.Param_Name
                    'Else
                        'fileName =entity.ContentDescription
                        ''MessageBox.show(entity.ContentType.Param_Name)
                        ''MessageBox.show(entity.ContentDescription)
                    'End If
                    'Dim id As String
                    'If entity.Contentid <> "" Then
                        'id=entity.Contentid
                        'id=id.TrimStart("<")
                        'id=id.TrimEnd(">")
                        '''MessageBox.show(id)
                    'End If
                    'If Not String.IsNullOrEmpty(fileName) Then
                        'try
                            'Dim dir As New io.DirectoryInfo(ProjectPath & "bin\temp\")
                            'If Not dir.Exists Then
                                'dir.Create()
                            'End If
                            '''filename=filename.Replace(" ","")
                            '''MessageBox.show(filename)
                            'Dim path__1 As String = io.Path.Combine(dir.FullName, fileName)
                            'Dim byteObj As object= entity.Body
                            'Dim decodedDataStream As io.Stream = byteObj.GetDataStream()
                            'Using fs As New io.FileStream(path__1, io.FileMode.Create)
                            'LumiSoft.Net.Net_Utils.StreamCopy(decodedDataStream, fs, 4000)
                        'End Using
                        'Dim tr As Row=Tables("附件").addnew
                        'tr("uid")=msgs(i).uid
                        'tr("cid")=id
                        'Dim ifo As new FileInfo(path__1)
                        'tr("文件名")=ifo.name.Replace(ifo.Extension,"")
                        'tr("格式")=ifo.Extension
                        'tr.save
                        ''  tr.DataRow.SQLInsertFile("附件",path__1)
                    'catch ex As Exception
                        ''''' MessageBox.show(ex.ToString)
                        'Dim ttr As Row=Tables("附件").addnew
                        'ttr("uid")=msgs(i).uid
                        'If ex.ToString.contains("非法字符") Then
                            'ttr("文件名")=filename
                            'ttr("说明")=ex.ToString
                        'Else
                            'ttr("文件名")=filename
                            'ttr("说明")=ex.ToString
                        'End If
                    'End try
                'End If
            'End If
        'Next
    End If
End If
'Catch ex As Exception
'End try
'End If
Next
pop3.disconnect
End Using

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/10 11:33:00 [只看该作者]

循环每一个右键,然后判断比较uid的值,即可,匹配的,就是你需要的邮件。

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/12/10 14:23:00 [只看该作者]

恩恩,甜老师,这个可以

 回到顶部
帅哥哟,离线,有人找我吗?
liufucan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:649 积分:5730 威望:0 精华:0 注册:2017/4/7 12:15:00
  发帖心情 Post By:2019/3/9 18:39:00 [只看该作者]

遍历邮件虽然可以,但是效率太低了

 回到顶部