"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.

Share:
17,463

Related videos on Youtube

megueloby
Author by

megueloby

Noble Citoyen Camerounais, Développeur java, eclipse RCP, et web.

Updated on June 04, 2022

Comments

  • megueloby
    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
    megueloby about 6 years
    Thanks @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
    megueloby about 6 years
    On the code I also added like you suggested props.put("mail.smtp.port", "portnumber"); now I have the error Exception 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
    Bill Shannon about 6 years
    If it still fails, turn on JavaMail debug output and add the debug output to your original post above.