I may have a good build, stand by. I got the transport cast as SMTPTransport. 
The code will need some polishing, let’s see first if it works.

On Oct 27, 2014, at 12:00 PM, Jerry Malcolm <techst...@malcolms.com> wrote:

> The mailet only sees 'transport' which is cast to generic 
> "javax.mail.Transport".   The localhost methods and connection methods are 
> all part of the geronimo impl.  You'll need to cast the transport to the 
> geronimo package for the class, then see if you can get the connection object 
> from the transport.  Might work.  But non-trivial.  I'll play around with 
> that was well.
> 
> Jerry
> 
> On 10/27/2014 1:41 PM, Robert Munn wrote:
>> 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
>> 
>> 
>> 
>> -----
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2015.0.5315 / Virus Database: 4189/8463 - 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
> 


---------------------------------------------------------------------
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