JAVA SMTP MAIL 을 보낼때 설정하는 Properties 중 session.getInstance 와 getdefaultinstance 의 차이를 적어보려고 합니다.
1. session.getInstance
session.getInstance(Properties props, Authenticator authenticator):
getInstance()는 Properties 객체와 Authenticator 객체를 매개변수로 받습니다.
Properties 객체는 이메일 서버와 관련된 속성을 설정하기 위해 사용됩니다.
예를 들어, SMTP 호스트, 포트, 인증 여부 등을 설정할 수 있습니다.
Authenticator 객체는 필요한 경우 이메일 계정의 인증 정보를 제공하기 위해 사용됩니다.
이메일 서버가 인증을 요구하는 경우 Authenticator 객체를 통해 사용자 이름과 비밀번호를 제공할 수 있습니다.
예시
Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.example.com"); properties.put("mail.smtp.port", "587"); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("username", "password"); } }; Session session = Session.getInstance(properties, authenticator); |
2. Session.getDefaultInstance
getDefaultInstance()는 Properties 객체만 매개변수로 받습니다.
getDefaultInstance()는 JavaMail의 기본 설정을 사용하여 세션을 반환합니다.
일반적으로 JavaMail의 기본 설정은 Properties 객체에서 미리 정의된 속성들을 사용하며, 시스템의 기본 메일 세션을 반환합니다.
getDefaultInstance()는 한 번 호출되면 동일한 세션을 반환하므로, 여러 번 호출해도 동일한 설정을 유지합니다.
이 경우 password 가 설정 되어 있지 않아도 기본 설정 세션으로 권한을 연결합니다.
Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.example.com"); properties.put("mail.smtp.port", "587"); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); Session session = Session.getDefaultInstance(properties); |
일반적으로 getInstance() 메서드를 사용하여 세션을 얻는 것이 더 유연하고 맞춤 설정할 수 있는 방법입니다.
그러나 getDefaultInstance()는 간단한 설정으로 기본 세션을 얻는 데 유용할 수 있습니다.
상황과 요구에 따라 적절한 메서드를 선택하여 사용하면 됩니다.
'IT > JAVA' 카테고리의 다른 글
자바스크립트 opener 함수의 호출 오류 해결 방법 (0) | 2024.08.23 |
---|---|
JAVA 또는 JAVASCRIPT 첨부 파일 회전 시킨 후 다시 저장하는 방법 (0) | 2023.07.04 |
java eclipse 디버깅 하는 방법 (0) | 2023.06.29 |
java util map replace (key, value) 값 변경 (0) | 2023.06.23 |
JAVA STMP 를 활용 하여 MAIL 보내는 방법 (0) | 2023.06.20 |