java - 为什么我不能使用 toString 解析 javamail 附件?

标签 java android imap jakarta-mail multipart

在我看来,下面的代码 fragment 应该有效,但“mp.getBodyPart(1).getContent().toString()”返回

com.sun.mail.util.BASE64DecoderStream@44b07df8

而不是附件的内容。

public class GMailParser {
    public String getParsedMessage(Message message) throws Exception {
        try {
            Multipart mp = (Multipart) message.getContent();
            String s = mp.getBodyPart(1).getContent().toString();
            if (s.contains("pattern 1")) {
                return "return 1";
            } else if (s.contains("pattern 2")) {
                return "return 2";
            }
            ...

最佳答案

它只是意味着 BASE64DecoderStream 类不提供自定义 toString 定义。默认的toString定义是显示类名+'@'+Hash Code,就是你看到的。

要获取 Stream 的“内容”,您需要使用 read() 方法。

关于java - 为什么我不能使用 toString 解析 javamail 附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453997/

相关文章:

google-app-engine - 在 App Engine 上使用 OAuth2 的 IMAP

java - 共享偏好编辑器混合值

java - 找不到局部变量 'ac'

java.lang.UnsatisfiedLinkError : dlopen failed: library "libutils.so" not found 错误

java - 如何摆脱 'Failed to load IMAP envelope' 消息传递异常?

outlook - 特定用户使用 MailKit 向 Office 365 Outlook IMAP 进行身份验证失败

java - unsafe.compareAndSwapInt 第一个参数 menanig

java - java解决方案中的动态类创建

java - 如何禁用 oData API 的 HTTP POST REQUEST?

android - getParentFragment() 在 ViewPager 中返回 null