"Exception reading response" error trying to send mail in java
17,463
This is not related to the jar but more a SMTP server error. you could try using
telnet mail.domain.tld
and try connecting to the host. I suggest you include a port like
props.put("mail.smtp.port", "portnumber");
you can try the standard port 25 (unsecure) or 587 (secure) instead.
Related videos on Youtube
Author by
megueloby
Noble Citoyen Camerounais, Développeur java, eclipse RCP, et web.
Updated on June 04, 2022Comments
-
megueloby almost 2 years
Here is a little code to send email from java.
public static void sendMail(){ Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "mail.domain.tld"); props.put("mail.smtp.debug", "true"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "pwd"); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); message.setSubject("Testing Subject"); message.setContent("This is a test <b>HOWTO<b>", "text/html; charset=ISO-8859-1"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { throw new RuntimeException(e); } }
But running it I have this error
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at Test.main(Test.java:112) Caused by: javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2445) at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:2307) at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2340) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1808) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1285) at javax.mail.Transport.send0(Transport.java:255) at javax.mail.Transport.send(Transport.java:124) at Test.main(Test.java:107) Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:126) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read(BufferedInputStream.java:254) at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:104) at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2425) ... 7 more
I don't understand the reason of the error because this code worked for me in the past. Here is the jars I'm using:
- dsn-1.6.0
- gimap-1.6.0
- imap-1.6.0
- javax.mail-1.6.0
- javax.mail-api-1.6.0
- logging-mailhandler-1.6.0
- mailapi-1.6.0
- pop3-1.6.0
- smtp-1.6.0
After modification asked by @Bill, here is the new error I have
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: mail.hereka.org, port: 25; nested exception is: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at Test.main(Test.java:134) Caused by: javax.mail.MessagingException: Could not connect to SMTP host: mail.hereka.org, port: 25; nested exception is: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2196) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:726) at javax.mail.Service.connect(Service.java:366) at javax.mail.Service.connect(Service.java:246) at javax.mail.Service.connect(Service.java:267) at javax.mail.Transport.send0(Transport.java:252) at javax.mail.Transport.send(Transport.java:174) at Test.main(Test.java:130) Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:671) at sun.security.ssl.InputRecord.read(InputRecord.java:504) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:619) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:393) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160) ... 7 more
But if I remove the ssl property this is the new error
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at Test.main(Test.java:134) Caused by: javax.mail.MessagingException: Exception reading response; nested exception is: java.net.SocketException: Software caused connection abort: recv failed at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2445) at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:2307) at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2340) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1808) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1285) at javax.mail.Transport.send0(Transport.java:255) at javax.mail.Transport.send(Transport.java:174) at Test.main(Test.java:130) Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:126) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read(BufferedInputStream.java:254) at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:104) at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2425) ... 7 more
Thanks
-
megueloby about 6 yearsThanks @Guru I tried telnet on port 25 and the conection is done even if I have the message on the console "we do not authorize the use of this systeme to transport unsolicited and/or bulk e-mail".
-
megueloby about 6 yearsOn the code I also added like you suggested
props.put("mail.smtp.port", "portnumber");
now I have the errorException in thread "main" java.lang.RuntimeException: javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550-Please turn on SMTP Authentication in your mail client. (Name) 550-[41.244.226.223]:63273 is not permitted to relay through this server 550 without authentication.
-
Bill Shannon about 6 yearsIf it still fails, turn on JavaMail debug output and add the debug output to your original post above.