Spring Boot - Java Mail - Couldn't connect to host - java

I've implemented the email manager using JavaMailSender into my Java application, configured with Gmail email, and locally tested.
I'm using a free domain by freenom.
in localhost on my pc everything working perfectly. But deploying on the server the application obtains this error:
c.m.a.m.components.EmailManager : sendRegisterEmail Exception: Mail server connection failed;
nested exception is com.sun.mail.util.MailConnectException:
Couldn't connect to host, port: smtp.gmail.com, 587; timeout -1;
nested exception is:
java.net.UnknownHostException: smtp.gmail.com. Failed messages:
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 587; timeout -1;
nested exception is:
java.net.UnknownHostException: smtp.gmail.com
test done
Generating an application password
Using directly the host IP
Using port 465 and 25
Disabling VPS firewall
Used another mail provider
application.properties
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=***********#gmail.com
spring.mail.password=***********
spring.mail.properties.mail.debug=false
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.mime.charset=UTF-8
spring.mail.transport.protocol=smtp

Try to change spring.mail.port to 465. This might help.
Port 587 is technically correct. However, many ESPs have adopted implicit TLS on port 465.
Also, there's probably a firewall preventing you from connecting directly, you may need to connect through a proxy.

Related

Could not send e-mail using WildFly 17 running on Ubuntu 18.04 / Windows 10

I am using java, and wilfly 17 running on ubuntu 18 and would like to send an e-mail via localhost / a remote host, i.e. gmail, using this server.
I have implemented the solution described in
send mail via localhost
and then tried implementing the solution described in
send mail via remote host
But, unfortunately, in both cases I am getting one and the same exception
Couldn't connect to host, port: localhost, 25; timeout -1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
respectively:
Couldn't connect to host, port: mail.google.com, 25; timeout -1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: mail.google.com, 25; timeout -1;
nested exception is:
java.net.ConnectException: Connection timed out (Connection timed out)
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
at javax.mail.api#1.6.2//javax.mail.Service.connect(Service.java:388)
Regarding allowing outbound connections on my Ubuntu system, I have allowed all outbound connections as described in
allow inbound/ outbound connections Ubuntu
I just have tried sending an email through WildFly 17 running on Windows 10, but I am getting the same exception as above:
(default task-6) Couldn't connect to host, port: mail.google.com, 25; timeout -1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: mail.google.com, 25; timeout -1;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
at javax.mail.api#1.6.2//com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
at javax.mail.api#1.6.2//javax.mail.Service.connect(Service.java:388)
Thank you guys for your comments!
Ultimately I solved the problem by following exactly the steps listed here:
Configure WildFly to send eMails
then, after having recieved the exception
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8
I logged on into my gmail account, on behalf of which I wanted to send e-mails, and enabled the option in this link:
Enable less secure apps gmail
Then I tested my solution on both Ubuntu 18.04 and Windows 10 and it worked in both cases!

Mail sending -SMTP error with javaMailSender

I am running a program to send email using spring boot with gmail smtp.
The same code works fine in my personal laptop.
But when I try to run it in office laptop it doesn't work and says
SMTP timeout:
Couldn't connect to host, port: smtp.gmail.com, 587; timeout -1;
I feel it is because of firewall or proxy.
I tried to check from Outlook but could not get smtp name , i tried some hit and trial also.
Any possible solution.

EmailServiceImpl - Authentication failed - no password specified? (anonymous access)

I have setup a local SMTP server on my server machine's IIS 6.0.
I have set its Access Control to Anonymous so that no user name or password is required. The SMTP Windows service is running and I am trying the following in my server.xml to send an email:
<Resource auth="Container" mail.smtp.host="192.168.27.158" mail.smtp.auth="true" mail.smtp.port="25" name="sas/mail/Session" type="javax.mail.Session"/>
The host IP above is what I get when I run my ipconfig and look for the value IPv4 under my domain's Ethernet.
The message I get in the log is the following:
com.sas.mobiledesigner.api.services.email.impl.EmailServiceImpl -
Authentication failed; nested exception is
javax.mail.AuthenticationFailedException: failed to connect, no
password specified?
Why is the it asking for password when I have set my access control to anonymous?
Update:
After setting the value of mail.smtp.auth to false I get the following error message:
ERROR [tomcat-http--10] 2016-05-24 16:22:56,416
com.sas.mobiledesigner.api.services.email.impl.EmailServiceImpl - Mail
server connection failed; nested exception is
javax.mail.MessagingException: Could not connect to SMTP host:
192.168.27.158, port: 25, response: -1. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host:
192.168.27.158, port: 25, response: -1
I think auth property should be false.
mail.smtp.auth="false"

Cannot send mails via outlook through java application

Have the following mail configuration settings :
mail.smtp.host=smtp.us.deloitte.com
mail.smtp.socketFactory.port=25
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.auth=true
mail.smtp.port=25
and the following properties :
mail.password=password
mail.from=sam#xyz.com
mail.to=sam#xyz.com
mail.subject=Status of Data pushed
I get the following error :
java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.us.deloitte.com, port: 25;
nested exception is:
java.net.SocketException: Permission denied:
The same code when I use gmail as the 'from' account and the Outlook account in 'to', it works.
I tried setting setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true, also disabled iPv6 on Windows 7 box, but nothing seems to work
Just an observation: You are using STMPS protocol, and most SMTPS servers still communicates on the deprecated port 465 or the standardized port 587 and not 25.

Could not connect to SMTP host error in my local only

I am getting this error while trying to send mail through java mail. It used to work for me, but recently I switched to jdk7 and glassfish 3.1.2. I tried to switch it back to jdk6 also but it's not working anymore, here is the error I'm getting:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.illumina.com, port: 25;
nested exception is:
java.net.SocketException: Permission denied: connect
Telnet and ping to this server is fine. Its working from other systems. Only my local setup is throwing this error.
Any ideas?

Categories

Resources