A couple of additional notes. This issue appeared on Ubuntu as well, so it
is not just a windows issue.

On the  good side, the version of Geronimo java mail in the app is fairly
old, so this bug may be fixed already.
On Oct 27, 2014 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
>
>

Reply via email to