以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  按邮件主题查看邮件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128525)

--  作者:fubblyc
--  发布时间:2018/12/9 19:05: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 msgs As object = pop3.messages()

\'获取某邮件信息
Dim messageBytes = msgs(4).MessageToByte  \'这是按第几封邮件查看邮件,有没有办法按主题内容,因为是按月份收取,发送是主题为【XX月报表】,这样就有1-12月,接收的时候可以月份来查看邮件下载附件。。。
Dim mime_message = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(messageBytes)
Dim str As String = ""
str &= "发送人:" & mime_message.From(0).DisplayName & vbcrlf
str &= "发送地址:" &  mime_message.From(0).Address & vbcrlf
str &= "主题:" & mime_message.Subject  & vbcrlf
str &= "日期:" & mime_message.Date  & vbcrlf
Dim fjs = mime_message.GetAttachments(False, False)
str &= "附件数:" & fjs.length  & vbcrlf
str &= vbcrlf & vbcrlf & mime_message.BodyHtmlText

e.Form.Controls("TextBox1").Text = str

For Each entity As object In fjs
    If entity.ContentType IsNot Nothing Then
        Dim fileName As String = entity.ContentType.Param_Name
        If Not String.IsNullOrEmpty(fileName) Then
            Dim dir As New io.DirectoryInfo("D:\\email\\")
            If Not dir.Exists Then
                dir.Create()
            End If
            
            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
        msgbox(fileName & "已经被下载到" & path__1)
    End If
End If
Next

End Using

--  作者:fubblyc
--  发布时间:2018/12/9 19:10:00
--  
或者说能不能获取邮件列表存入FT表格,然后可以在table去获取对应的邮件数
--  作者:有点甜
--  发布时间:2018/12/9 21:04:00
--  
以下是引用fubblyc在2018/12/9 19:10:00的发言:
或者说能不能获取邮件列表存入FT表格,然后可以在table去获取对应的邮件数

 

所有邮件都在msgs变量里面,你遍历每一个获取,然后再获取里面的信息,不就好了?如果不满足或者之前已经获取过的了,那就跳出循环。


--  作者:fubblyc
--  发布时间:2018/12/9 21:11:00
--  
甜老师,
Dim msgs As object = pop3.messages()

具体要怎么遍历呢。。

--  作者:fubblyc
--  发布时间:2018/12/9 21:25:00
--  
甜老师,是这样吗:
Dim msgs As object = pop3.messages()
\'获取某邮件信息
Dim i As Integer
For i = 1 To 3
    Dim messageBytes = msgs(i).MessageToByte
    Dim mime_message = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(messageBytes)
    Dim str As String = ""
    \'str &= "发送人:" & mime_message.From(0).DisplayName & vbcrlf
    \'str &= "发送地址:" &  mime_message.From(0).Address & vbcrlf
    str &= "主题:" & mime_message.Subject  & vbcrlf
    \'str &= "日期:" & mime_message.Date  & vbcrlf
    \'Dim fjs = mime_message.GetAttachments(True, True)
    \'str &= "附件数:" & fjs.length  & vbcrlf
    \'str &= vbcrlf & vbcrlf & mime_message.BodyHtmlText
    \'Forms("pop协议").Controls("TextBox1").Text = str
    output.show(str)
Next
End Using

--  作者:有点甜
--  发布时间:2018/12/9 22:27:00
--  

比如

 

Dim msgs As object = pop3.messages

For i=0 To msgs.count-1

 

next


--  作者:fubblyc
--  发布时间:2018/12/9 22:29:00
--  
好咧,谢谢甜老师!!