tickets created and patch files uploaded. On Mar 3, 2015, at 1:09 PM, Robert Munn <robert.d.m...@gmail.com> wrote:
> ok > > On Mar 1, 2015 12:51 AM, "Eric Charles" <e...@apache.org> wrote: > 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 >