如何在Android中使用Java邮件将应用程序电子邮件同步到服务器电子邮件?

问题描述 投票:4回答:2

我想在电子邮件应用程序中同步更改然后自动更改服务器电子邮件。例如,我已经阅读了电子邮件应用程序上的未读消息,然后自动服务器电子邮件将未读邮件更改为读取邮件。

我的电子邮件应用程序使用邮件jar文件,activation.jar和其他jar文件使用,以下代码用于连接电子邮件应用程序到服务器电子邮件:

Properties props = System.getProperties();
            props.setProperty("mail.store.protocol", "imaps");
            props.put("mail.smtp.starttls.enable","true");
            Authenticator auth = new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication(){
                    return new PasswordAuthentication("USEREMAILID","PASSWORD ");
                    }
            };
            sessioned= Session.getDefaultInstance(props, auth);
            store = sessioned.getStore("imaps");
           store.connect("smtp.gmail.com","USEREMAILID","PASSWORD ");
             inbox = store.getFolder("inbox");
            inbox.open(Folder.READ_ONLY);
            FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
            UNReadmessages = inbox.search(ft);
android javamail
2个回答
4
投票

我已经解决了这个问题。 切勿在运行时关闭连接,使用以下代码。

   inbox.open(Folder.READ_WRITE);

2
投票

如果您在“在线”时执行此操作,并且已连接存储并打开文件夹,则通过JavaMail API所做的更改会立即反映在服务器上。您和您的程序逻辑可以确保(例如)标记消息读取或未读取的用户界面操作导致相应的JavaMail操作。

另请注意,特别是对于“读取”,获取消息内容将导致服务器将消息标记为已读,而无需您执行任何其他显式操作。

如果您希望在应用程序“脱机”时发生所有这些,并在下次联机时重新同步,那就更难了。 JavaMail FAQ有一些指导可以帮助解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.