FairEmail/app/src/main/java/eu/faircode/email/MimeMessageEx.java

93 lines
2.6 KiB
Java
Raw Normal View History

package eu.faircode.email;
/*
2018-08-14 05:53:24 +00:00
This file is part of FairEmail.
2018-08-14 05:53:24 +00:00
FairEmail is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
2018-10-29 10:46:49 +00:00
FairEmail is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
2018-10-29 10:46:49 +00:00
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
2021-01-01 07:56:36 +00:00
Copyright 2018-2021 by Marcel Bokhorst (M66B)
*/
2019-09-29 09:43:00 +00:00
import java.io.InputStream;
import javax.mail.Flags;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
public class MimeMessageEx extends MimeMessage {
private String msgid;
2019-09-29 09:43:00 +00:00
private MimeMessage original;
2018-12-09 14:49:43 +00:00
MimeMessageEx(Session session, String msgid) {
super(session);
this.msgid = msgid;
}
2019-09-29 09:43:00 +00:00
MimeMessageEx(Session session, InputStream is, MimeMessage original) throws MessagingException {
super(session, is);
this.original = original;
}
2019-02-17 13:48:23 +00:00
@Override
public String getMessageID() throws MessagingException {
if (this.msgid == null)
return super.getMessageID();
else
return this.msgid;
}
@Override
protected void updateMessageID() throws MessagingException {
if (this.msgid == null)
super.updateMessageID();
else {
setHeader("Message-ID", msgid);
2018-12-24 12:27:45 +00:00
Log.i("Override Message-ID=" + msgid);
}
}
2019-09-29 09:43:00 +00:00
2019-09-30 05:56:58 +00:00
@Override
public synchronized Flags getFlags() throws MessagingException {
if (original == null)
return super.getFlags();
else
return original.getFlags();
}
2019-09-29 09:43:00 +00:00
@Override
public synchronized boolean isSet(Flags.Flag flag) throws MessagingException {
if (original == null)
return super.isSet(flag);
else
return original.isSet(flag);
}
2019-09-30 05:56:58 +00:00
@Override
public void setFlag(Flags.Flag flag, boolean set) throws MessagingException {
if (original == null)
super.setFlag(flag, set);
else
original.setFlag(flag, set);
}
@Override
public synchronized void setFlags(Flags flag, boolean set) throws MessagingException {
if (original == null)
super.setFlags(flag, set);
else
original.setFlags(flag, set);
}
}