fevone 2015-05-14 16:45 采纳率: 85.7%
浏览 1454

jvamail中MessageCountListener()的getsubject调用不了

public static void update() throws MessagingException {
        // 准备链接服务器的会话信息
        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imap");
        props.setProperty("mail.imap.host", "imap.sina.com");
        props.setProperty("mail.imap.port", "143");

        // 创建session实例对象
        Session session = Session.getInstance(props);
        session.setDebug(true);

        // 创建IMAP协议的Store对象
        Store store = session.getStore("imap");

        // 链接邮件服务器
        store.connect("××××@sina.com", "××××××");
        System.out.println("连上了");

        // 获得邮件收件箱
        Folder folder = store.getFolder("INBOX");
        // 以读写模式打开收件箱
        folder.open(Folder.READ_WRITE);

        folder.addMessageCountListener(new MessageCountListener() {
            public void messagesRemoved(MessageCountEvent messagecountevent) {
            }

            @Override
            public void messagesAdded(MessageCountEvent ev) {
                System.out.println("new message");
                Message[] msgs = ev.getMessages();
                for (int i = 0; i < msgs.length; i++) {
                    System.out.println(msgs[i].getMessageNumber());
                    try {
                        System.out.println("========");
                        System.out.println("***1"+msgs[i].toString());
                        System.out.println("***2"+(msgs[i]==null));
                        System.out.println("***3:"+msgs[i].getSubject().toString());
                        System.out.println("***4:"+msgs[i].getFrom().toString());
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                }
            }
        });

        boolean supportIDLE = false;
        try {
            if (folder instanceof IMAPFolder) {
                IMAPFolder f = (IMAPFolder) folder;
                f.idle();
                supportIDLE = true;
            }
        } catch (FolderClosedException fex) {
            update();
        } catch (MessagingException mex) {
            supportIDLE = false;
        }

控制台输出截取如下:


========
***1com.sun.mail.imap.IMAPMessage@7b80f885
***2false
DONE
A2 OK IDLE completed
A3 FETCH 24 (ENVELOPE INTERNALDATE RFC822.SIZE)

就是在这里我就是调用不起来getsubject方法。没法取这个信

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 高德地图点聚合中Marker的位置无法实时更新
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办