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

Reply via email to