java 在Web应用程序中显示.eml文件

lc8prwob  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(204)

我有一个Web应用程序,我需要显示.eml文件(在RFC 822格式)的用户,格式正确的电子邮件-显示HTML文本正文正确,显示图像,附件等。你知道一个组件/库可以做这些事情吗?
我更喜欢用Java实现(并且可以很容易地与spring集成:-)),但是任何其他在Apache上运行的实现也是可以的。

xcitsw88

xcitsw881#

您可以将.eml转换为javax.mail.Messages mailMessage:
Loading .eml files into javax.mail.Messages
然后你可以使用这个库在MessageBean中进行转换:
http://javaclue.blogspot.com/2009/09/portable-java-mail-message-bean_02.html
MessageBean mb = MessageBeanUtil.mimeToBean(mailMessage);

af7jpaap

af7jpaap2#

锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。

Javamail可以读取EML文件。

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;

public class ReadEmail {

   public static void main(String args[]) throws Exception{
       display(new File("C:\\temp\\message.eml"));

   }

   public static void display(File emlFile) throws Exception{
        Properties props = System.getProperties();
        props.put("mail.host", "smtp.dummydomain.com");
        props.put("mail.transport.protocol", "smtp");

        Session mailSession = Session.getDefaultInstance(props, null);
        InputStream source = new FileInputStream(emlFile);
        MimeMessage message = new MimeMessage(mailSession, source);

        System.out.println("Subject : " + message.getSubject());
        System.out.println("From : " + message.getFrom()[0]);
        System.out.println("--------------");
        System.out.println("Body : " +  message.getContent());
    }
}

相关问题