전자 메일을 보내는 담당 클래스를 수정했습니다. 그것은이처럼 보였다 (간체) : 나는 null
에 내 완전한 깜짝에 session
을 설정 나의 일 동안javax.mail.Session의 사용법은 무엇입니까?
/* ... */
Properties props = System.getProperties();
props.put("mail.smtp.host", A_VALID_IP_OF_MAIL_SERVER);
Session session = Session.getDefaultInstance(props, null);
try {
Message msg = new MimeMessage(session);
/* msg.setFrom(); msg.addRecipient(); etc. */
Transport.send(msg);
System.out.println("Sent!");
}
catch (Exception e) { /* ... */ }
/* ... */
클래스는 여전히 잘 작동했다. null
을 MimeMessage
생성자에 전달하면 문제가되지 않습니다. 그것은 예외 또는 아무것도 던지지 않습니다. 또한, Transport.send()
방법은 다음 줄을 포함 세션이 null
입니다
240 Session s = (msg.session != null) ? msg.session : 241 Session.getDefaultInstance(System.getProperties(), null);
그렇다면 그것은 단지 시스템 등록 정보를 사용하여 새 조직을 만듭니다. 그런 다음 Session
개체를 만드는 목적은 무엇입니까? MimeMessage
에 전달할 내용이 중요하지 않은 경우 왜 기본 생성자가 있습니까? example from Google 및 example from tutorialspoint 그들은 모두 꽤 쓸모없는 것 같다 Session
객체를 생성 :
멀티 스레드 응용 프로그램에서 Javamail을 사용하기 전까지는 훌륭하게 작동합니다. 그러면 System.getProperties()가 전역 객체이기 때문에 결국 당신을 물게됩니다. – Brain2000