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