public void saveMetadata(Email email) throws PasswordException, FileNotFoundException, IOException, GeneralSecurityException { EmailMetadata metadata = email.getMetadata(); File metaFile = getMetadataFile(email.getMessageID()); saveMetadata(metadata, metaFile); }
public void setNew(Email email, boolean isNew) throws PasswordException, GeneralSecurityException { EmailMetadata metadata = email.getMetadata(); metadata.setUnread(isNew); try { saveMetadata(email); } catch (IOException e) { log.error("Can't read metadata file for message ID <" + email.getMessageID() + ">", e); } }
email.setMessageID(packets[0].getMessageId()); // all packets in the array have the same message ID email.getMetadata().setReceivedDate(new Date()); inbox.add(email);
/** * Checks the DHT for all undelivered packets belonging to a given email. * @param email * @throws InterruptedException */ private void checkDelivery(Email email) throws InterruptedException { EmailMetadata metadata = email.getMetadata(); Collection<PacketInfo> packets = metadata.getUndeliveredPacketKeys(); synchronized(sentFolder) { boolean updateMetadata = false; for (PacketInfo packet: packets) { UniqueId delAuth = dht.findDeleteAuthorizationKey(packet.dhtKey, packet.delVerificationHash); if (delAuth != null) { metadata.setPacketDelivered(packet.dhtKey, true); updateMetadata = true; log.debug("Delivery of email packet with DHT key " + packet.dhtKey + " confirmed."); } } if (updateMetadata) try { sentFolder.saveMetadata(email); } catch (Exception e) { log.error("Can't save email metadata.", e); } } } }
while (iterator.hasNext()) { Email email = iterator.next(); if (!email.getMetadata().isDelivered()) checkDelivery(email);
EmailMetadata metadata = email.getMetadata(); for (UnencryptedEmailPacket unencryptedPacket: emailPackets) { EncryptedEmailPacket emailPacket = new EncryptedEmailPacket(unencryptedPacket, recipientDest);