Here is the base code. Note localHost is a property of the MailConnection
class. Note also that there is a setLocalHost() method. I am going to try
setting the localhost property from RemoteDelivery using setLocalHost(
localHost ).
public String getLocalHost() throws MessagingException {
if (localHost == null) {
try {
localHost = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
// fine, we're misconfigured - ignore
}
if (localHost == null) {
localHost = props.getProperty(MAIL_LOCALHOST);
}
if (localHost == null) {
localHost = props.getSessionProperty(MAIL_LOCALHOST);
}
if (localHost == null) {
throw new MessagingException("Can't get local hostname. "
+ " Please correctly configure JDK/DNS or set
mail.smtp.localhost");
}
}
return localHost;
}
/**
* Explicitly set the local host information.
*
* @param localHost
* The new localHost name.
*/
public void setLocalHost(String localHost) {
this.localHost = localHost;
}
On Oct 27, 2014, at 11:28 AM, Jerry Malcolm <[email protected]> wrote:
> mailet calls 'transport' which is an "SMTPTransport" instance. SMTPTransport
> calls SMTPConnection.getLocalHost() which is inherited from
> MailConnection.getLocalHost().
>
> That method returns the InetAddress().getLocalHost().getHostName() first.
> According to the spec, that should only occur IF the property
> mail.smtp.localhost is not set. So i think the fix should be in that method.
>
> The very first thing in the MailConnection.getLocalHost() method should be
> something like:
> ---------------------------------------
> if ( props.getProperty( "mail.smtp.localhost" ) != null ) return(
> props.getProperty( "mail.smtp.localhost" ));
> ---------------------------------------
> Then let it try all of the other options if and only if this property is NOT
> set.
>
> Jerry
>
> On 10/27/2014 1:07 PM, Robert Munn wrote:
>> More info. SMPTConnection.java extends MailConnection.java which has a
>> method with this signature:
>>
>> public boolean protocolConnect(String host, int port, String username,
>> String password) throws MessagingException
>>
>> If you fail to pass ‘host’ as an argument to the method, the host defaults
>> to ‘localhost’. A patch could be made there. A better patch would be to find
>> the upstream code that is calling this method and patch it to send the
>> correct hostname. I am hunting for that location, please let me know if you
>> have any suggestions...
>>
>>
>>
>>
>> On Oct 27, 2014, at 10:25 AM, Jerry Malcolm <[email protected]> wrote:
>>
>>> Thanks for jumping in and investigating. This has gone from ugly to
>>> horrible.... I think I have found the culprit.
>>>
>>> I first had to figure out who is providing the class for SMTPTransport.
>>> figured out that the package for SMTPTransport is:
>>> org.apache.geronimo.javamail.transport.smtp. So it is NOT a base JVM
>>> implementation.... It's apache, and I am about to withdraw my statement
>>> that 'surely the transport class couldn't be ignoring a property".....
>>>
>>> Geronimo's SMTPTransport.java uses a class SMTPConnection which actually
>>> returns the localhost name. And... no surprise at this point, it totally
>>> ignores the mail.smtp.localhost property. The property doesn't even appear
>>> anywher in the class. First line in getLocalHost() pulls the
>>> InetAddress.getLocalHost().getHostName() value.
>>>
>>> So.... half the problem is done... we know the culprit. Now I guess (oh
>>> joy....) I get to download the whole geronimo package, set up a build
>>> process, fix the code, and replace the jar on my server. (yuck).
>>>
>>> That is... unless someone already has a VERY quick way to patch and rebuild
>>> geronimo..... Looking for volunteers.... :-)
>>>
>>> In the meantime, I will also try adding that JVM parameter to try to
>>> override the Win Server machine name.
>>>
>>> Still open to other suggestions for quicker workaround.....
>>>
>>> Thanks.
>>>
>>> Jerry
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>>
>>
>> -----
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2015.0.5315 / Virus Database: 4189/8462 - Release Date: 10/27/14
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]