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 <techst...@malcolms.com> 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 <techst...@malcolms.com> 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: server-user-unsubscr...@james.apache.org
>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>> 
>> 
>> 
>> 
>> -----
>> 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: server-user-unsubscr...@james.apache.org
> For additional commands, e-mail: server-user-h...@james.apache.org

Reply via email to