[
https://issues.apache.org/jira/browse/MAILET-85?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adrian Baker updated MAILET-85:
-------------------------------
Description:
In
org.apache.james.transport.mailets.AbstractRedirect#replaceInternetAddresses(Mail,
Collection), this code block means that using the "recipients" special
adresses in the Resend mailet config incorrectly gives you the TO addresses:
} else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress()) ||
internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
try {
String[] toHeaders =
mail.getMessage().getHeader(RFC2822Headers.TO);
if (toHeaders != null) {
for (int i = 0; i <
toHeaders.length; i++) {
try {
InternetAddress[] originalToInternetAddresses =
InternetAddress.parse(toHeaders[i], false);
for (int j = 0; j < originalToInternetAddresses.length; j++) {
newList.add(originalToInternetAddresses[j]);
}
The fix is straightforward:
} else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress())) {
...
} else if
(internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
if(mail.getRecipients() != null) {
for(Object recipient : mail.getRecipients()) {
newList.add(((MailAddress)recipient).toInternetAddress());
}
}
was:
In
org.apache.james.transport.mailets.AbstractRedirect#replaceInternetAddresses(Mail,
Collection), this code block means that using the "recipients" special
adresses in the Resend mailet config incorrectly gives you the TO addresses:
{code:java}
} else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress()) ||
internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
try {
String[] toHeaders =
mail.getMessage().getHeader(RFC2822Headers.TO);
if (toHeaders != null) {
for (int i = 0; i <
toHeaders.length; i++) {
try {
InternetAddress[] originalToInternetAddresses =
InternetAddress.parse(toHeaders[i], false);
for (int j = 0; j < originalToInternetAddresses.length; j++) {
newList.add(originalToInternetAddresses[j]);
}
{code}
The fix is straightforward:
{code:java}
} else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress())) {
...
} else if
(internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
if(mail.getRecipients() != null) {
for(Object recipient : mail.getRecipients()) {
newList.add(((MailAddress)recipient).toInternetAddress());
}
}
{code}
> Resend mailet mistakenly treats SpecialAddress.RECIPIENTS as SpecialAddress.TO
> ------------------------------------------------------------------------------
>
> Key: MAILET-85
> URL: https://issues.apache.org/jira/browse/MAILET-85
> Project: James Mailet
> Issue Type: Bug
> Affects Versions: 3.0
> Reporter: Adrian Baker
>
> In
> org.apache.james.transport.mailets.AbstractRedirect#replaceInternetAddresses(Mail,
> Collection), this code block means that using the "recipients" special
> adresses in the Resend mailet config incorrectly gives you the TO addresses:
> } else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress()) ||
> internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
> try {
> String[] toHeaders =
> mail.getMessage().getHeader(RFC2822Headers.TO);
> if (toHeaders != null) {
> for (int i = 0; i <
> toHeaders.length; i++) {
> try {
>
> InternetAddress[] originalToInternetAddresses =
> InternetAddress.parse(toHeaders[i], false);
>
> for (int j = 0; j < originalToInternetAddresses.length; j++) {
>
> newList.add(originalToInternetAddresses[j]);
>
> }
> The fix is straightforward:
> } else if (internetAddress.equals(SpecialAddress.TO.toInternetAddress())) {
> ...
> } else if
> (internetAddress.equals(SpecialAddress.RECIPIENTS.toInternetAddress())) {
> if(mail.getRecipients() != null) {
> for(Object recipient : mail.getRecipients()) {
>
> newList.add(((MailAddress)recipient).toInternetAddress());
> }
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira