Can you open a JIRA and upload your patches there? On 10/28/2014 12:11 AM, Robert Munn wrote: > OK, I made an Eclipse patch for the RemoteDelivery issue. I also made a patch > for a mod I made to ReadOnlyUsersLDAPRespository.java that filters LDAP users > by an additional filter string specified in the ldap conf file. Details, and > patches, available on my blog: > > http://blog.bonnydoonmedia.com/post.cfm/patches-for-apache-james-mail-server-3-0-beta5 > > > > On Oct 27, 2014, at 2:05 PM, Robert Munn <cfmuns...@gmail.com> wrote: > >> Forgot one thing. Just above the try{} block, Transport transport is >> defined. I changed it to this: >> >> SMTPTransport transport = null; >> >> >> >> On Oct 27, 2014, at 1:54 PM, Robert Munn <cfmuns...@gmail.com> wrote: >> >>> Here is my code. Import the SMTPTransport class, and replace this: >>> >>> transport = session.getTransport(outgoingMailServer); >>> >>> with this: >>> >>> transport = (SMTPTransport) session.getTransport(outgoingMailServer); >>> transport.setLocalHost( props.getProperty("mail.smtp.localhost", heloName) >>> ); >>> >>> I added: >>> >>> <!-- Set the HELO/EHLO name to use when connectiong to remote >>> SMTP-Server --> >>> <mail.smtp.localhost>mail.legacyavatar.com</mail.smtp.localhost> >>> >>> and I have confirmed that it is being picked up by >>> props.getProperty(“mail.smtp.localhost”). >>> >>> >>> >>> >>> On Oct 27, 2014, at 1:23 PM, Robert Munn <cfmuns...@gmail.com> wrote: >>> >>>> Great stuff. I got the build working as well. I don’t like the fact that >>>> we’re forcing it to use SMTPTransport, ruling out using other transport >>>> providers, but if you look at the section of the code just below there, >>>> you see this: >>>> >>>> // if the transport is a SMTPTransport (from sun) some >>>> // performance enhancement can be done. >>>> if (transport.getClass().getName().endsWith(".SMTPTransport")) { >>>> >>>> so there is a section that is testing the class and adding extensions >>>> already. I might wrap the code in a class name check and only call >>>> setLocalHost() if I find >>>> org.apache.geronimo.javamail.transport.smtp.SMTPTransport. >>>> >>>> Also, you only need to import that class, not the entire >>>> org.apache.geronimo.javamail.transport.smtp.* package. Better for the >>>> memory footprint. >>>> >>>> >>>> I will help with jDKIM, I will need to set it up myself. Where to start? >>>> >>>> >>>> >>>> On Oct 27, 2014, at 12:29 PM, Jerry Malcolm <techst...@malcolms.com> wrote: >>>> >>>>> Well, Robert, you get the prize.... It works (finally)! >>>>> >>>>> Two changes required to RemoteDelivery mailet: >>>>> >>>>> Add: >>>>> import org.apache.geronimo.javamail.transport.smtp.*; >>>>> >>>>> Right after: >>>>> transport = session.getTransport(outgoingMailServer); >>>>> >>>>> add: >>>>> ((org.apache.geronimo.javamail.transport.smtp.SMTPTransport)transport).setLocalHost( >>>>> "mail.jwmhosting.com"); >>>>> >>>>> or be more generic and get the value from props. >>>>> >>>>> The setLocalHost needs to be right after the object is instantiated since >>>>> the HELO is sent on one of the first calls to transport. >>>>> >>>>> This fixes it (thank you so much for your help). But Geronimo is still >>>>> not following the spec and honoring the property mail.smtp.localhost. It >>>>> needs to be fixed in a subsequent release. >>>>> >>>>> Basically everybody using James 3 needs to add this fix to the mailet, at >>>>> least if running on a Windows server. Or verify through mail-tester.com >>>>> that the HELO is correct. Going back to the orig problem, gmail was not >>>>> delivering tons of my mail due to this. >>>>> >>>>> Thanks again. >>>>> >>>>> Now.... anybody offer any help on getting jDKIM working? I've got it >>>>> implemented and the DNS is set up. But mail-tester is telling me the >>>>> signature is invalid. On to the next problem..... >>>>> >>>>> Jerry >>>>> >>>>> >>>>> >>>>> >>>>> On 10/27/2014 2:00 PM, Jerry Malcolm 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 >>>>>> >>>>>> >>>>>> >>>>>> ----- >>>>>> 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 >>>>> >
--------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org