1

メールを送信する weblogic 12c で実行されている Web アプリケーションを取得しました。2 つの amazon インスタンスを取得しました。そのうちの 1 つは、異なる IP を持つ最初のインスタンスのクローンです。したがって、元のインスタンスでは問題なくメールを送信できましたが、クローン インスタンスでは次の例外が発生します。

javax.mail.MessagingException: Exception reading response;
  nested exception is:
        javax.net.ssl.SSLHandshakeException: Remote host closed connection durin
g handshake
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java
:1462)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:37
0)
        at javax.mail.Service.connect(Service.java:288)
        at javax.mail.Service.connect(Service.java:169)
        at javax.mail.Service.connect(Service.java:189)
        at com.proximate.generales.service.impl.CorreoServiceImpl.sendMail(Corre
oServiceImpl.java:170)......
Caused by: java.io.EOFException: SSL peer shut down incorrectly
        at sun.security.ssl.InputRecord.read(InputRecord.java:482)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
        ... 96 more

メールを送信するための私のコードは次のとおりです。

public boolean sendMail() throws Exception {
    // try {
    final ResourceBundle props1 = ResourceBundle.getBundle(ConstantesGenerales.SMTP_BUNDLE);
    Properties props = new Properties();
    for (Enumeration e = props1.getKeys(); e.hasMoreElements();) {
        // Obtenemos el objeto
        Object obj = e.nextElement();
        props.put(obj, props1.getObject(obj.toString()));
    }

    Session session = Session.getInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(props1.getString("username"), props1.getString("password"));
        }
    });

    // Create a default MimeMessage object.

    SMTPMessage message = new SMTPMessage(session);
    MimeMultipart multiparte = new MimeMultipart("related");

    MimeBodyPart texto = new MimeBodyPart();
    texto.setText(mensaje.toString(), "US-ASCII", "html");
    multiparte.addBodyPart(texto);

    String rutaLogos = configuracionDAO.getRutaLogos();

    MimeBodyPart imagePart = new MimeBodyPart();

    imagePart.attachFile(new File(rutaLogos + ConstantesGenerales.LOGO_PUSHMATE));
    imagePart.setContentID(ConstantesGenerales.ETIQUETA_PUSHMATE);
    imagePart.setDisposition(MimeBodyPart.INLINE);
    multiparte.addBodyPart(imagePart);

    MimeBodyPart imagePart2 = new MimeBodyPart();
    imagePart2.attachFile(new File(rutaLogos + ConstantesGenerales.LOGO_PROXIMATE));
    imagePart2.setContentID(ConstantesGenerales.ETIQUETA_PROXIMATE);
    imagePart2.setDisposition(MimeBodyPart.INLINE);
    multiparte.addBodyPart(imagePart2);

    message.setContent(multiparte);
    message.setSubject(MimeUtility.encodeText(titulo, "utf-8", "B"));
    message.setSentDate(new Date());
    message.setFrom(new InternetAddress(props1.getString("username")));

    if (archivo != null) {
        BodyPart adjunto = new MimeBodyPart();
        adjunto.setFileName(archivo.getName());
        adjunto.setDataHandler(new DataHandler(new FileDataSource(archivo)));
        multiparte.addBodyPart(adjunto);
    }

    for (int i = 0; i < destinatarios.length; i++) {
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatarios[i]));

    }

    // Send message
    // Transport.send(message);

    Transport t = session.getTransport("smtp");
    t.connect(props1.getString("username"), props1.getString("password"));
    t.sendMessage(message, message.getAllRecipients());
    t.close();
    // } catch (Exception e) {
    // e.printStackTrace();
    // //enviarCorreo();
    // }
    return true;
}

そして、ここに私のプロパティがあります:

username=services@host.com
password=Password
mail.host=smtpout.secureserver.net
mail.smtp.auth=true
mail.smtp.starttls.enable=false
mail.smtp.host=smtpout.secureserver.net
mail.smtp.port=465
mail.smtp.ssl.enable=true
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback=false
mail.transport.protocol=smtp

私もこのプロパティを使用してみました:

from=services@host.com
username=AKIAJK7XNV45BJ4YX7WQ
password=ArPec8p374QUSfHo80sAS4m5ShAgo/iOYlNQOv6/XTn+
mail.host=email-smtp.us-east-1.amazonaws.com
mail.smtp.auth=true
mail.smtp.port=587
mail.smtp.starttls.enable=true
mail.smtp.starttls.required=true
mail.transport.protocol=smtp

TLS や SSL を使用しないようにプロパティを設定しようとしましたが、クローン インスタンスでは常に同じ例外が発生し、元のインスタンスではメールが送信されます。何が間違っている可能性がありますか?前もって感謝します。

4

0 に答える 0