相关疑难解决方法(0)

如何使用javax.mail读取邮件正文中的文本

我正在使用javax.mail开发客户端邮件来读取邮箱内的邮件:

Properties properties = System.getProperties();  
properties.setProperty("mail.store.protocol", "imap");  
try {  
    Session session = Session.getDefaultInstance(properties, null);
    Store store = session.getStore("pop3");//create store instance  
    store.connect("pop3.domain.it", "mail.it", "*****");  
    Folder inbox = store.getFolder("inbox");  
    FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
    inbox.open(Folder.READ_ONLY);//set access type of Inbox  
    Message messages[] = inbox.search(ft);
    String mail,sub,bodyText="";
    Object body;
    for(Message message:messages) {
        mail = message.getFrom()[0].toString();
        sub = message.getSubject();
        body = message.getContent();
        //bodyText = body.....
    }
} catch (Exception e) {  
    System.out.println(e);    
}
Run Code Online (Sandbox Code Playgroud)

我知道该方法getContent()返回一个对象,因为内容可能是a String,a MimeMultiPart,a SharedByteArrayInputstream和其他(我认为)......有没有办法在消息正文中获取文本?谢谢!!

java mime multipart javax.mail

42
推荐指数
5
解决办法
6万
查看次数

JavaMail - 解析电子邮件内容,似乎无法让它工作!(Message.getContent())

几个星期以来,我一直在为android开发一个电子邮件客户端,我一直忽略解析电子邮件内容一段时间,因为我从来没有能够让它工作.因此,现在是时候寻求帮助了!

我一直在环顾四周,我遇到过一些我尝试过的方法,但从来没有取得多大成功!目前我最接近的尝试必须是:

private String parseContent(Message m) throws Exception
{       
    //Multipart mp = (Multipart)c;
    //int j = mp.getCount();

    /*for (int i = 0; i < mp.getCount(); i++)
    {
        Part part = mp.getBodyPart(i);
        System.out.println(((MimeMessage)m).getContent());
        content = content + part.toString();
        //System.out.println((String)part.getContent());
    }*/

    Object content = m.getContent();
    String contentReturn = null;

    if (content instanceof String) 
    {
        contentReturn = (String) content;
    } 
    else if (content instanceof Multipart) 
    {
        Multipart multipart = (Multipart) content;
        BodyPart part = multipart.getBodyPart(0);
        part.toString();
        contentReturn = part.getContent().toString();
    }   
    return contentReturn;
} …
Run Code Online (Sandbox Code Playgroud)

java android jakarta-mail

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×2

android ×1

jakarta-mail ×1

javax.mail ×1

mime ×1

multipart ×1