mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-03 11:28:41 +01:00
Added via warning
This commit is contained in:
@@ -53,6 +53,7 @@ import javax.mail.MessagingException;
|
||||
import javax.mail.Multipart;
|
||||
import javax.mail.Part;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.internet.AddressException;
|
||||
import javax.mail.internet.ContentType;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeBodyPart;
|
||||
@@ -456,6 +457,24 @@ public class MessageHelper {
|
||||
return (TextUtils.isEmpty(msgid) ? Long.toString(uid) : msgid);
|
||||
}
|
||||
|
||||
Address getSender() throws MessagingException {
|
||||
String sender = imessage.getHeader("Sender", null);
|
||||
if (sender == null)
|
||||
return null;
|
||||
|
||||
InternetAddress[] address = null;
|
||||
try {
|
||||
address = InternetAddress.parse(sender);
|
||||
} catch (AddressException ex) {
|
||||
Log.w(ex);
|
||||
}
|
||||
|
||||
if (address == null || address.length == 0)
|
||||
return null;
|
||||
|
||||
return address[0];
|
||||
}
|
||||
|
||||
Address[] getFrom() throws MessagingException {
|
||||
return imessage.getFrom();
|
||||
}
|
||||
@@ -560,7 +579,7 @@ public class MessageHelper {
|
||||
private Part plain = null;
|
||||
private Part html = null;
|
||||
private List<AttachmentPart> attachments = new ArrayList<>();
|
||||
private List<String> warnings = new ArrayList<>();
|
||||
private ArrayList<String> warnings = new ArrayList<>();
|
||||
|
||||
String getHtml(Context context) throws MessagingException {
|
||||
if (plain == null && html == null) {
|
||||
@@ -709,7 +728,9 @@ public class MessageHelper {
|
||||
}
|
||||
}
|
||||
|
||||
String getWarnings() {
|
||||
String getWarnings(String existing) {
|
||||
if (existing != null)
|
||||
warnings.add(0, existing);
|
||||
if (warnings.size() == 0)
|
||||
return null;
|
||||
else
|
||||
|
||||
@@ -1969,7 +1969,7 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
String preview = HtmlHelper.getPreview(body);
|
||||
message.write(this, body);
|
||||
db.message().setMessageContent(message.id, true, preview);
|
||||
db.message().setMessageWarning(message.id, parts.getWarnings());
|
||||
db.message().setMessageWarning(message.id, parts.getWarnings(message.warning));
|
||||
}
|
||||
|
||||
private void doAttachment(EntityFolder folder, EntityOperation op, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws JSONException, MessagingException, IOException {
|
||||
@@ -2515,6 +2515,17 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
message.ui_ignored = seen;
|
||||
message.ui_browsed = browsed;
|
||||
|
||||
// Check sender
|
||||
Address sender = helper.getSender();
|
||||
if (sender != null && senders.length > 0) {
|
||||
String[] f = ((InternetAddress) senders[0]).getAddress().split("@");
|
||||
String[] s = ((InternetAddress) sender).getAddress().split("@");
|
||||
if (f.length > 1 && s.length > 1) {
|
||||
if (!f[1].equals(s[1]))
|
||||
message.warning = context.getString(R.string.title_via, s[1]);
|
||||
}
|
||||
}
|
||||
|
||||
message.id = db.message().insertMessage(message);
|
||||
|
||||
Log.i(folder.name + " added id=" + message.id + " uid=" + message.uid);
|
||||
@@ -2658,7 +2669,7 @@ public class ServiceSynchronize extends LifecycleService {
|
||||
String body = parts.getHtml(context);
|
||||
message.write(context, body);
|
||||
db.message().setMessageContent(message.id, true, HtmlHelper.getPreview(body));
|
||||
db.message().setMessageWarning(message.id, parts.getWarnings());
|
||||
db.message().setMessageWarning(message.id, parts.getWarnings(message.warning));
|
||||
Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user