Get original from for some forwarders

This commit is contained in:
M66B 2023-09-15 15:00:18 +02:00
parent dd9ced7c05
commit 9061f345a6
2 changed files with 17 additions and 4 deletions

View File

@ -3427,7 +3427,7 @@ class Core {
message.dmarc = MessageHelper.getAuthentication("dmarc", authentication);
message.smtp_from = helper.getMailFrom(authentication);
message.return_path = helper.getReturnPath();
message.submitter = helper.getSender();
message.submitter = helper.getSubmitter();
message.from = helper.getFrom();
message.to = helper.getTo();
message.cc = helper.getCc();
@ -4575,7 +4575,7 @@ class Core {
message.dmarc = MessageHelper.getAuthentication("dmarc", authentication);
message.smtp_from = helper.getMailFrom(authentication);
message.return_path = helper.getReturnPath();
message.submitter = helper.getSender();
message.submitter = helper.getSubmitter();
message.from = helper.getFrom();
message.to = helper.getTo();
message.cc = helper.getCc();

View File

@ -2646,11 +2646,24 @@ public class MessageHelper {
return result.toArray(new Address[0]);
}
Address[] getSender() throws MessagingException {
Address[] getSubmitter() throws MessagingException {
Address[] sender = getAddressHeader("X-Google-Original-From");
if (sender == null)
sender = getAddressHeader("Duck-Original-From");
if (sender == null)
sender = getAddressHeader("X-SimpleLogin-Original-From");
if (sender == null)
sender = getAddressHeader("X-AnonAddy-Original-From-Header");
if (sender == null)
sender = getAddressHeader("Sender");
if (sender == null) {
Address[] from = getAddressHeader("From");
if (from != null && from.length == 1) {
String email = ((InternetAddress) from[0]).getAddress();
if (email != null && email.endsWith("@mozmail.com"))
sender = getAddressHeader("Resent-From");
}
}
return sender;
}