javamail邮件内容提取

本文介绍了如何从邮件中自动提取内容,包括使用Outlook的VBA脚本和javamail库。对于Outlook用户,可以通过脚本获取邮件主题和发送者邮箱;而对于Outlook Express或能导出eml的邮件客户端,可以借助javamail连接邮件服务器读取邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天因为客户有要从邮件里面自动提取内容的需要,所以头痛的看来两天。
目前找到两种方法:
 第一个是脚本实现,如果你用的是outlook而不是outlook express, 那么就可以用脚本实现,
  脚本如下(其实微软的网站上也能搜到)
Sub writecsv()

Const olFolderInbox = 6
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)

Set colItems = objFolder.Items
'Set colFilteredItems = colItems.Restrict("[Subject] = 'Project Proposal'")

'Wscript.Echo "[Subject] =" & colItems.GetLast().Subject & vbCr & vbLf & "[TO] =" & colItems.GetLast().To
'MsgBox "[Subject] =" & colItems.GetLast().Subject & vbCr & vbLf & "[TO] =" & colItems.GetLast().To
Dim msg As String
Dim count As Integer

Set FileXls = CreateObject("Scripting.FileSystemObject")
Set f = FileXls.CreateTextFile("C:/WORK/test/testfile.txt", True)

For Each objMessage In colItems
   'msg = msg & "[Subject] =" & objMessage.Subject & vbCr & vbLf & "[TO] =" & objMessage.To & vbCr & vbLf & vbCr & vbLf
   f.WriteLine ("[Subject] =" & objMessage.Subject & "  " & "[SenderEmailAddress] =" & objMessage.SenderEmailAddress)
   count = count + 1
Next
'MsgBox msg
'MsgBox count
'f.WriteBlankLines (1)
f.Close
End Sub
第二个是程序外部实现: 如果你用的是outlook express等可以导出邮件为eml格式的,就可以
 用javamail来实现。这个程序也可以直接连到你的邮件服务器上把邮件读出来。运行的时候需要
 javamail的pop3.jar,编译的时候需要javamail-1_4.zip. 这个代码javamail的demo里面有,
 叫做msgshow.java。 但是最好把里面的dumpEnvelope()函数取得FROM和TO的地方按照
下面的代码改一下,不然如果你不是用的ascii码写的收发件人的名字,就会是乱码,比如中文。
 if ((a = m.getFrom()) != null) {
        InternetAddress address[] = (InternetAddress[])a;
        String from = address[0].getAddress();
        if (from == null)
            from = "";
        String personal = address[0].getPersonal();
        if (personal == null)
            personal = "";
        String fromaddr = personal + "<" + from + ">";
        pr("FROM: " + fromaddr);
 }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值