[ 
https://issues.apache.org/jira/browse/FINERACT-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17248229#comment-17248229
 ] 

Michael Vorburger commented on FINERACT-1070:
---------------------------------------------

I'm reopening this, because looking more closely into it, I'm realizing that my 
initial quick fix was actually wrong, as per FINERACT-1280. There are actually 
2 separate problems:

1. That {{llegalStateException: The mail session is already initialized}} is 
caused by doing {{setSslSmtpPort()}} AFTER {{getMailSession()}}. Doing it the 
other way around probably works better. BUT from what little I understand of 
https://commons.apache.org/proper/commons-email, just from looking around the 
source code a little bit, I think it's actually better to just replace 
{{email.getMailSession().getProperties().put("mail.smtp.starttls.enable", 
"true");}} by {{email.setStartTLSRequired(true);}} anyway, because should do 
the exact same thing, as far as I can tell (check for yourself).

2. The original PR used {{setSslSmtpPort()}} VS {{setSmtpPort()}}. That... was 
most probably actually wrong, from what I understand from Apache Commons 
Email's JavaDoc, and a quick web search. There are, apparently, confusingly two 
different protocols for encrypted SMTP - an older (plain SSL?) and a newer one 
(TLS over SMPT?). {{setSslSmtpPort()}} is for when {{setSSLOnConnect()}}, 
whereas with {{setStartTLSRequired()}} one should use the regular 
{{setSmtpPort()}}.

https://github.com/apache/fineract/pull/1541/files is probably be the right way 
to do this - would you like to test it? Again, I've made this fix just based on 
reading source code, not actually tested it out myself.

> Email Service Configurations defaults to port 25 irrespective of Port number 
> specified
> --------------------------------------------------------------------------------------
>
>                 Key: FINERACT-1070
>                 URL: https://issues.apache.org/jira/browse/FINERACT-1070
>             Project: Apache Fineract
>          Issue Type: Bug
>          Components: System
>    Affects Versions: 1.4.0
>            Reporter: Francis Guchie
>            Assignee: Michael Vorburger
>            Priority: Critical
>             Fix For: 1.5.0
>
>         Attachments: email Service Configurations.png, 
> image-2020-10-15-11-17-57-324.png, image-2020-12-02-11-56-01-572.png
>
>
> Even if use sets the following, MifosX will not send emails
> 1- Configure the server on which mifos is installed to be able to send Emails 
> - One can do this by installing sSMTP on the server and testing email sending 
> on the command line
> 2- if using a gmail address only ports 465 and 587 will work because port 25 
> is by default disabled on google servers This includes very many other VPS / 
> Mail servers
> 3- Configure the port under the Email External Services ConfigurationĀ 
> one will still get the errorĀ  below
> 03-Jul-2020 19:59:41.251 SEVERE [https-jsse-nio-443-exec-18] 
> com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException 
> The RuntimeException could not be mapped to a response, re-throwing to the 
> HTTP container
>  
> org.apache.fineract.infrastructure.core.service.PlatformEmailSendException: 
> org.apache.commons.mail.EmailException: 
> Sending the email to the following server failed : smtp.gmail.com:25
> at 
> org.apache.fineract.infrastructure.core.service.GmailBackedPlatformEmailService.sendDefinedEmail(GmailBackedPlatformEmailService.java:81)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to