mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-02 19:10:11 +01:00
Added option to show headers
This commit is contained in:
@@ -66,6 +66,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -80,6 +81,7 @@ import javax.mail.Flags;
|
||||
import javax.mail.Folder;
|
||||
import javax.mail.FolderClosedException;
|
||||
import javax.mail.FolderNotFoundException;
|
||||
import javax.mail.Header;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.MessageRemovedException;
|
||||
import javax.mail.MessagingException;
|
||||
@@ -841,7 +843,8 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
if (message.uid == null &&
|
||||
(EntityOperation.SEEN.equals(op.name) ||
|
||||
EntityOperation.DELETE.equals(op.name) ||
|
||||
EntityOperation.MOVE.equals(op.name)))
|
||||
EntityOperation.MOVE.equals(op.name) ||
|
||||
EntityOperation.HEADERS.equals(op.name)))
|
||||
throw new IllegalArgumentException(op.name + " without uid");
|
||||
|
||||
JSONArray jargs = new JSONArray(op.args);
|
||||
@@ -864,6 +867,9 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
else if (EntityOperation.ATTACHMENT.equals(op.name))
|
||||
doAttachment(folder, op, ifolder, message, jargs, db);
|
||||
|
||||
else if (EntityOperation.HEADERS.equals(op.name))
|
||||
doHeaders(folder, ifolder, message, db);
|
||||
|
||||
else
|
||||
throw new MessagingException("Unknown operation name=" + op.name);
|
||||
|
||||
@@ -1124,6 +1130,17 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
}
|
||||
}
|
||||
|
||||
private void doHeaders(EntityFolder folder, IMAPFolder ifolder, EntityMessage message, DB db) throws MessagingException {
|
||||
Message imessage = ifolder.getMessageByUID(message.uid);
|
||||
Enumeration<Header> headers = imessage.getAllHeaders();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
while (headers.hasMoreElements()) {
|
||||
Header header = headers.nextElement();
|
||||
sb.append(header.getName()).append(": ").append(header.getValue()).append("\n");
|
||||
}
|
||||
db.message().setMessageHeaders(message.id, sb.toString());
|
||||
}
|
||||
|
||||
private void synchronizeFolders(EntityAccount account, IMAPStore istore, ServiceState state) throws MessagingException {
|
||||
try {
|
||||
Log.v(Helper.TAG, "Start sync folders");
|
||||
|
||||
Reference in New Issue
Block a user