Ошибка при отправке почты: java. net .SocketException: сброс подключения - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь отправить письмо с вложением с использованием динамических c получателей, но получаю следующую ошибку: Я могу проверить связь с хостом. Ниже приведена трассировка стека

javax.mail.MessagingException: Exception reading response;
  nested exception is:
  java.net.SocketException: Connection reset
  at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2460)
  at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2187)
  at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
  at javax.mail.Service.connect(Service.java:366)
  at javax.mail.Service.connect(Service.java:246)
  at javax.mail.Service.connect(Service.java:195)
  at javax.mail.Transport.send0(Transport.java:254)
  at javax.mail.Transport.send(Transport.java:124)

Ниже приведен фрагмент кода:

protected void Sendmail(String opt,String val)
  {
  String LogFile = "QAS.log";       
    String sender = "xyz.com";      
    String host = "smtp.xyz.com";       
    Properties prop = System.getProperties();        
     prop.put("mail.smtp.host", host);       
    Session session = Session.getDefaultInstance(prop);  
        try
    {           
       MimeMessage message = new MimeMessage(session);          
       message.setFrom(new InternetAddress(sender));          
       Multipart multipart = new MimeMultipart();
       BodyPart messageBodyPart = new MimeBodyPart();       

       DataSource source = new FileDataSource(LogFile);
       messageBodyPart.setDataHandler(new DataHandler(source));
       messageBodyPart.setFileName("Process_Log");
       multipart.addBodyPart(messageBodyPart);

       message.setContent(multipart);      
       message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(Mail_Notify.substring(0,Mail_Notify.length()-1)));            
       Transport.send(message);
       System.out.println("Mail successfully sent");
    }
    catch (MessagingException mex)
    {
       mex.printStackTrace();
    }
 }
...