mirror of https://github.com/M66B/FairEmail.git
parent
af28f983cd
commit
03c944122f
@ -1,64 +0,0 @@
|
|||||||
package eu.faircode.email;
|
|
||||||
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.mail.MessagingException;
|
|
||||||
import javax.mail.Session;
|
|
||||||
import javax.mail.internet.MimeMessage;
|
|
||||||
|
|
||||||
public class MimeMessageEx extends MimeMessage {
|
|
||||||
private long id = -1;
|
|
||||||
|
|
||||||
public MimeMessageEx(Session session, long id) {
|
|
||||||
super(session);
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateMessageID() throws MessagingException {
|
|
||||||
try {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
sb.append('<')
|
|
||||||
.append(id).append('.')
|
|
||||||
.append(BuildConfig.APPLICATION_ID).append('.')
|
|
||||||
.append(System.currentTimeMillis()).append('.')
|
|
||||||
.append("anonymous@localhost")
|
|
||||||
.append('>');
|
|
||||||
|
|
||||||
setHeader("Message-ID", sb.toString());
|
|
||||||
Log.v(Helper.TAG, "Override Message-ID=" + sb.toString());
|
|
||||||
} catch (Throwable ex) {
|
|
||||||
Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
|
|
||||||
super.updateMessageID();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static long getId(MimeMessage message) {
|
|
||||||
try {
|
|
||||||
String msgid = message.getMessageID();
|
|
||||||
if (msgid == null)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
List<String> parts = new ArrayList<>(Arrays.asList(msgid.split("\\.")));
|
|
||||||
if (parts.size() < 1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
String part = parts.get(0);
|
|
||||||
parts.remove(0);
|
|
||||||
if (!TextUtils.join(".", parts).startsWith(BuildConfig.APPLICATION_ID))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
long id = Long.parseLong(part.substring(1));
|
|
||||||
Log.v(Helper.TAG, "Parsed Message-ID=" + msgid + " id=" + id);
|
|
||||||
return id;
|
|
||||||
} catch (Throwable ex) {
|
|
||||||
Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue