Ошибка отправителя почты транспорта Java

Мне нужно отправить электронное письмо после сохранения объекта в моем проекте JAVA, я использую этот код

   public static void sendMail(String protocol, String host, String port, final String userName, final String password, 
           String subject, byte[] content, String para, String cc, String co) {
       Properties props = getServerProperties(protocol, host, port);

       Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }
       });

       try {
             final Message message = new MimeMessage(session);
             message.setFrom(new InternetAddress(userName));
             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(para));
             message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));
             message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(co));
             message.setSubject(subject);
             message.setText(content.toString());
             Transport.send(message);
       } catch (MessagingException e) {
             throw new RuntimeException(e);
       }
    }

   private static Properties getServerProperties(String protocol, String host, String port) {
      Properties properties = new Properties();
      properties.put(String.format("mail.%s.host", protocol), host);
      properties.put(String.format("mail.%s.port", protocol), port);
      properties.setProperty(String.format("mail.%s.socketFactory.class", protocol), "javax.net.ssl.SSLSocketFactory");
      properties.setProperty(String.format("mail.%s.socketFactory.fallback", protocol), "false");
      properties.setProperty(String.format("mail.%s.socketFactory.port", protocol), String.valueOf(port));
      return properties;
   }

но когда я звоню Transport.send(сообщение); возвращает мне сообщение об ошибке

Невозможно вызвать API вызов mail.Отправить в поток, который не является ни потоком исходного запроса, ни потоком, созданным ThreadManager

Что я делаю не так на почтовике?

0 ответов

Другие вопросы по тегам