JavaMail - 解析电子邮件内容,似乎无法正常工作! (消息.getContent())

标签 java android jakarta-mail

几个星期以来,我一直在为 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;
}

但它不起作用,我收到诸如“javax.mail.internet.MimeMultipart@44f12450”之类的乱码。

谁能看出我哪里出错了?

谢谢, 里斯

最佳答案

以上建议均无效。你不需要在这里做任何复杂的事情。 Mimemessage 有 message.writeTo(outputStream);

打印消息所需要做的就是:

message.writeTo(System.out);

以上代码会将实际的 MIME 消息打印到控制台(或者您可以使用任何记录器)。

将内容保存到.eml,即可在outlook中打开。就这么简单!

关于JavaMail - 解析电子邮件内容,似乎无法正常工作! (消息.getContent()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628395/

相关文章:

java - 有没有办法在手机上查找java内存状态?

java - 为什么我没有 InputManager.getInstance()?和注入(inject)输入事件()?

android - 如何使用 onSaveInstanceState 在我的 fragment 上保存和恢复接口(interface)

javax.mail.SendFailedException 发送邮件时地址无效

java - 在内联 javax.mail 中发送字符串时,数据源图像损坏

java - 检测到设备错误上没有剩余空间

Java Swing/awt - MousePressed 后直到 ActionEvent 会发生什么?

java - Unresolved Portlet 部署要求

android - 具有一个 fragment 的多布局 View 页面

java - 邮件发送问题