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
> 

Reply via email to