2011-12-27 5 views
2

plz는 app.conf 파일을 제외하고 "mail.smtp.user"및 "# mail.smtp.pass"를 설정하는 다른 방법을 제안합니다.런타임에 smtp 구성을 설정하는 방법

우리는 단일 응용 프로그램에서 여러 개의 메일을 보내기 위해 여러 개의 smtp 계정을 사용하고자하기 때문에.

그래서 자바

new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("[email protected]","abc");    
      }} 
+0

왜 여러 SMTP 계정이 필요합니까? –

+0

무엇을 사용 했습니까? – ripper234

답변

0

어쩌면 런타임에 속성을 설정처럼 런타임에 SMTP 서버를 인증 할 수있는 방법은 무엇입니까?

System.setProperty("mail.smtp.user", "admin"); 
+0

스레드로부터 안전하지 않습니다. – ripper234

1

깨끗한 방법으로는 불가능하다고 생각합니다. Mail.getSession()으로 전화를 걸면 Mail.session = Session.getInstance(session.getProperties(), new SMTPAuthenticator(user, password));은 스레드 안전이 아닙니다. 그래서 나는 사용하기 쉬운 다른 메일 라이브러리를 사용하고 더 많은 유연성을 줄 것을 권할 것입니다. 또 다른 해결책은 Mail.java에서 코드를 가져 와서 다른 키에 대한 인스턴스가있는 MultiMail.java를 만드는 것입니다.

관련 문제