Email 使用回复链从电子邮件正文中提取地址和收件人地址-JavaMail Api。
我试图从安然数据集中提取内容。我想我会尝试使用Javamail Api,因为它很容易解析。然而,我是Javamail新手,我在网上查阅了一些资料 我能够创建文件的mimessage对象并提取各种字段。getContent()能够给我正文中的内容 我想做的是从正文中提取出from和to地址。我不知道该怎么做 我读过关于创建多部分对象并试图从中提取的内容Email 使用回复链从电子邮件正文中提取地址和收件人地址-JavaMail Api。,email,parsing,jakarta-mail,Email,Parsing,Jakarta Mail,我试图从安然数据集中提取内容。我想我会尝试使用Javamail Api,因为它很容易解析。然而,我是Javamail新手,我在网上查阅了一些资料 我能够创建文件的mimessage对象并提取各种字段。getContent()能够给我正文中的内容 我想做的是从正文中提取出from和to地址。我不知道该怎么做 我读过关于创建多部分对象并试图从中提取的内容 使用javax.mail.Message.getContent()获取消息的内容。这 应在类型为的对象中返回整个消息的内容 javax.mail.
下面是我试图解析的文件的内容
Message-ID: <16159836.1075855377439.JavaMail.evans@thyme>
Date: Fri, 7 Dec 2001 10:06:42 -0800 (PST)
From: heather.dunton@enron.com
To: k..allen@enron.com
Subject: RE: West Position
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-From: Dunton, Heather </O=ENRON/OU=NA/CN=RECIPIENTS/CN=HDUNTON>
X-To: Allen, Phillip K. </O=ENRON/OU=NA/CN=RECIPIENTS/CN=Pallen>
X-cc:
X-bcc:
X-Folder: \Phillip_Allen_Jan2002_1\Allen, Phillip K.\Inbox
X-Origin: Allen-P
X-FileName: pallen (Non-Privileged).pst
Please let me know if you still need Curve Shift.
Thanks,
Heather
-----Original Message-----
From: Allen, Phillip K.
Sent: Friday, December 07, 2001 5:14 AM
To: Dunton, Heather
Subject: RE: West Position
Heather,
Did you attach the file to this email?
-----Original Message-----
From: Dunton, Heather
Sent: Wednesday, December 05, 2001 1:43 PM
To: Allen, Phillip K.; Belden, Tim
Subject: FW: West Position
Attached is the Delta position for 1/16, 1/30, 6/19, 7/13, 9/21
-----Original Message-----
From: Allen, Phillip K.
Sent: Wednesday, December 05, 2001 6:41 AM
To: Dunton, Heather
Subject: RE: West Position
Heather,
This is exactly what we need. Would it possible to add the prior day for each of the dates below to the pivot table. In order to validate the curve shift on the dates below we also need the prior days ending positions.
Thank you,
Phillip Allen
-----Original Message-----
From: Dunton, Heather
Sent: Tuesday, December 04, 2001 3:12 PM
To: Belden, Tim; Allen, Phillip K.
Cc: Driscoll, Michael M.
Subject: West Position
Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24
<< File: west_delta_pos.xls >>
Let me know if you have any questions.
Heather
消息ID:
日期:2001年12月7日星期五10:06:42-0800(太平洋标准时间)
发件人:希瑟。dunton@enron.com
致:k。。allen@enron.com
主题:RE:西部位置
Mime版本:1.0
内容类型:文本/纯文本;字符集=美国ascii码
内容传输编码:7bit
X-From:希瑟,邓顿
X-To:Allen,Phillip K。
X-cc:
X-bcc:
X文件夹:\Phillip\u Allen\u Jan2002\u 1\Allen,Phillip K.\Inbox
X-原点:艾伦-P
X文件名:pallen(非特权).pst
如果您仍然需要曲线移动,请告诉我。
谢谢
希瑟
-----原始消息-----
发件人:艾伦,菲利普K。
发送时间:2001年12月7日星期五上午5:14
致:邓顿,希瑟
主题:RE:西部位置
希瑟,
您是否将该文件附加到此电子邮件中?
-----原始消息-----
发件人:邓顿,希瑟
发送日期:2001年12月5日星期三下午1:43
致:艾伦,菲利普K。;贝尔登,蒂姆
主题:FW:西部位置
附件是1/16、1/30、6/19、7/13、9/21的三角位置
-----原始消息-----
发件人:艾伦,菲利普K。
发送时间:2001年12月5日星期三上午6:41
致:邓顿,希瑟
主题:RE:西部位置
希瑟,
这正是我们需要的。是否可以将以下每个日期的前一天添加到透视表中。为了验证以下日期的曲线移动,我们还需要前几天的结束位置。
非常感谢。
菲利普·艾伦
-----原始消息-----
发件人:邓顿,希瑟
发送日期:2001年12月4日星期二下午3:12
致:蒂姆·贝尔登;艾伦,菲利普K。
抄送:德里斯科尔,迈克尔M。
主题:西部阵地
附件是1/18、1/31、6/20、7/16、9/24的三角洲位置
>
如果你有任何问题,请告诉我。
希瑟
这是我使用的代码:
private void mailParser() throws IOException, MessagingException {
File mailFiles = new File("/xxx/xx/xx/x/x/inbox/1");
String host = "host.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
MimeMessage email = null;
try {
FileInputStream fis = new FileInputStream(mailFiles);
email = new MimeMessage(session, fis);
//Message ID
System.out.println("message id: " + email.getMessageID());
//Date
System.out.println("sent date : " + email.getSentDate());
//From
Address[] add = email.getFrom();
if (add != null) {
for (int i = 0; i < add.length; i++) {
System.out.println("FROM : " + add[i].toString());
}
//Subject
System.out.println("\nsubject: " + email.getSubject());
//TO
if (email.getRecipients(Message.RecipientType.TO) != null) {
for( Address emails: email.getRecipients(Message.RecipientType.TO)){
System.out.println("\nrecipients to: " + Arrays.asList(email.getRecipients(Message.RecipientType.TO)));
}
//CC
if (email.getRecipients(Message.RecipientType.CC) != null) {
for( Address emails: email.getRecipients(Message.RecipientType.CC)){
System.out.println("\nrecipients cc: " + Arrays.asList(email.getRecipients(Message.RecipientType.CC)));
}
//BCC
if (email.getRecipients(Message.RecipientType.BCC) != null) {
for( Address emails: email.getRecipients(Message.RecipientType.BCC)){
System.out.println("\nrecipients bcc: " + Arrays.asList(email.getRecipients(Message.RecipientType.BCC)));
}
//Content type
System.out.println("contetnt type: " + email.getContentType());
//Content Encoding
System.out.println("encoding: " + email.getEncoding());
//Content of email
Message message = (Message) email.getContent();
if(message instanceof MimeMessage)
{
MimeMessage m = (MimeMessage)message;
Object contentObject = m.getContent();
if(contentObject instanceof Multipart)
{
BodyPart clearTextPart = null;
Multipart content = (Multipart)contentObject;
int count = content.getCount();
for(int i=0; i<count; i++)
{
BodyPart part = content.getBodyPart(i);
clearTextPart = part;
break;
}
if(clearTextPart!=null)
{
String result = (String) clearTextPart.getContent();
System.out.println(result);
}
}
System.out.println("Content of email" + email.getContent().toString());
} catch (MessagingException e) {
throw new IllegalStateException("illegal state issue", e);
} catch (FileNotFoundException e) {
throw new IllegalStateException("file not found issue issue: " + mailFiles.getAbsolutePath(), e);
}
}
private void mailParser()抛出IOException、MessaginException{
File mailFiles=新文件(“/xxx/xx/xx/x/x/inbox/1”);
字符串host=“host.com”;
Properties=System.getProperties();
setProperty(“mail.smtp.host”,host);
Session Session=Session.getDefaultInstance(属性);
mimessage email=null;
试一试{
FileInputStream fis=新的FileInputStream(邮件文件);
电子邮件=新MIMESSAGE(会话,fis);
//消息ID
System.out.println(“消息id:+email.getMessageID());
//日期
System.out.println(“发送日期:+email.getSentDate());
//从
地址[]添加=email.getFrom();
如果(添加!=null){
对于(int i=0;i 对于(int i=0;i您看到的是对邮件回复的回复,其中原始邮件文本和一些标题信息作为新文本包含在回复邮件中。就MIME而言,原始邮件的文本显示在回复邮件中,就像您自己键入的一样,就像tex的任何其他部分一样回复信息的t。“原始信息”