2011-12-27 3 views
2

Plz предлагает другой способ установить «mail.smtp.user» и «# mail.smtp.pass», кроме файла app.conf.Как установить конфигурацию smtp во время выполнения

Поскольку мы хотим использовать несколько учетных записей smtp для отправки нескольких писем в одном приложении.

Так есть ли способ аутентификации SMTP-сервер во время выполнения, как и в Java

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

Зачем вам нужно несколько учетных записей SMTP? –

+0

Что вы в конечном итоге используете? – ripper234

ответ

0

Возможно установить свойство во время выполнения?

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, который имеет экземпляры для разных ключей.

Смежные вопросы