We are trying to configure Spring JavaMailSender to work with Amazon's SES service using SMTP, but we are getting this error:
javax.mail.MessagingException: Could not connect to SMTP host: email-smtp.us-east-1.amazonaws.com, port: 465, response: -1
This is our configuration:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="email-smtp.us-east-1.amazonaws.com" />
<property name="port" value="465" />
<property name="username" value="..." />
<property name="password" value="..." />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
</props>
</property>
</bean>
Any ideas what could be wrong? Thanks in advance.
PS: We already tried the solution here: Could not connect to SMTP host: email-smtp.us-east-1.amazonaws.com, port: 465, response: -1 without any luck.
Based on @GuCo answer: This is the full configuration that worked for me:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="email-smtp.us-east-1.amazonaws.com" />
<property name="port" value="465" />
<property name="protocol" value="smtps" />
<property name="username" value="..." />
<property name="password" value="..." />
<property name="javaMailProperties">
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
<prop key="mail.transport.protocol">smtps</prop>
</props>
</property>
</bean>
Do not forget the <property name="protocol" value="smtps" />
configuration, or else the javaMailProperties are not taken into consideration.
I just came across the same problem. Actually, I tried to solve it a few weeks ago and got stuck ...
First thing I did, to identify the problem: activate the debugging mode for the mail api
<props>
...
<prop key="mail.debug">true</prop>
</props>
This showed me, that it actually doesn't use SSL
DEBUG SMTP: trying to connect to host "email-smtp.us-east-1.amazonaws.com", port 465, isSSL false
My colleague pointed out, to include another mail property to really use SSL
<props>
...
<prop key="mail.transport.protocol">smtps</prop>
...
</props>
After adding this value the "isSSL" value changed to true, but pointed out another error. It doesn't use authentication anymore, because of the change of the protocol, which can be fixed by, of course, changing the property
<prop key="mail.smtp.auth">true</prop>
to
<prop key="mail.smtps.auth">true</prop>
After that journey, it finally worked for me :-)
Hope that was helpful ...
Just to summarize the correct properties:
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
<prop key="mail.transport.protocol">smtps</prop>
</props>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With