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