을
전송 개체를 만들고 연결을 관리하여 사용자 이름/암호가 작동하는지 확인할 수 있습니다.
Address[] to = InternetAddress.parse("[email protected]");
Transport t = session.getTransport(to[0]);
t.connect();
t.close();
사용자 이름/패스와 봉투를 확인하려면 모든 봉투 정보가 있지만 내용이없는 메시지를 작성하십시오. 또는 적대적인 writeTo (OutputStream) 메서드가있는 MimeMessage의 하위 클래스를 만듭니다. 이 작품
MimeMessage msg = new MimeMessage(session);
Address[] from = InternetAddress.parse("[email protected]");
Address[] to = InternetAddress.parse("[email protected]");
msg.addFrom(from);
msg.setRecipients(Message.RecipientType.TO, to);
ByteArrayOutputStream out = new ByteArrayOutputStream(384);
msg.saveChanges();
try {
msg.writeTo(out);
throw new AssertionError();
} catch (MessagingException | IOException test) {
try {
Transport.send(msg);
throw new AssertionError();
} catch (MessagingException | IOException expect) {
if (!exceptionEqual(test, expect)) {
//Notify the user....
}
}
}
이유는 Transport.send이 Message.writeTo로 만드는 경우 다음 메일 서버에 로그인 할 수 있습니다 의심 할 여지없이 알 수 있도록 내용이 마지막으로 기록 된 것입니다. 또한 서버는 봉투 정보를 수락했는지 여부를 알려줍니다. 그러나 그것이 봉투를 받아 들였다고해서 전달이 성공할 것이라는 의미는 아닙니다. Message.writeTo가 예외를 throw하기 때문에 실제 전자 메일 메시지는 보내지지 않습니다.