Можно ли повторно использовать экземпляр Simple Java Mail Mailer? Это потокобезопасно?

Мне нужны некоторые разъяснения по поводу использования класса Mailer библиотеки Simple Java Mail после создания экземпляра Mailer, например:

Mailer mailer = MailerBuilder.withSMTPServer(
        smtpHost,
        smtpPort,
        smtpUser,
        smtpPassword
    ).
    withTransportStrategy(TransportStrategy.SMTPS).
    buildMailer();

Я отправляю электронное письмо с mailer.sendEmail(email).

Можно ли повторно использовать экземпляр Mailer для отправки нескольких писем? Или мне придется создавать его для каждого электронного письма, которое я хочу отправить? Прямо сейчас я проверил, и кажется, что можно отправлять несколько писем, но не уверен.

Это потокобезопасно?

Уточните, пожалуйста, что это за библиотека Mailer.

Mark Rotteveel 24.08.2024 18:52

@MarkRotteveel это указано в названии, оно называется Simple Java Mail. simplejavamail.org, я написал библиотеку Simple Java Mail

res1 24.08.2024 19:39

Спасибо, я не интерпретировал это как имя, а просто описательно. На ваши вопросы отвечает документация: Настройте один раз, используйте многократно и Асинхронная параллельная пакетная отправка и кластеризация

Mark Rotteveel 25.08.2024 09:54

Если у вас есть вариант использования, о котором действительно стоит беспокоиться, является ли что-то потокобезопасным или нет, вы должны предположить, что это не так. Если у вас действительно есть проблема, посмотрите источник (вашей версии). Кстати, я не могу найти Mailer (кроме MailerBuilder) в последней версии этой библиотеки.

PeterMmm 25.08.2024 11:21

@MarkRotteveel спасибо за разъяснения. Если вы ответите, я приму это. Я прочитал javadoc javadoc.io/doc/org.simplejavamail/simple-java-mail/latest/… (здесь нет Mailer, но у меня есть javadoc этого класса в моей IDE), и это было неясно как по мне, я не обратил должного внимания, если бы это было на сайте

res1 25.08.2024 12:21

@PeterMmm да в javadoc javadoc.io/doc/org.simplejavamail/simple-java-mail/latest/… класса Mailer нет, я читал его в своей IDE (не знаю как, но Intellij дает мне тоже Javadoc Mailer), и мне это было непонятно. Сомнение было, потому что реализуется AutoClosable

res1 25.08.2024 12:22

Javadoc Mailer находится в core-модуле, а не simple-java-mail

Mark Rotteveel 25.08.2024 12:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
7
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В документации Simple Java Mail прямо сказано, что вы можете создать почтовую программу один раз и использовать ее много раз, и что она потокобезопасна, в частности раздел Настройте один раз, используйте повторно много раз:

Вы можете предварительно настроить почтовую программу и использовать ее много раз. Это потокобезопасно.

Кроме того, он предоставляет формы Асинхронной параллельной пакетной отправки и кластеризации, что еще больше повышает его потокобезопасность. Или, по крайней мере, если что-то обеспечивает параллельную пакетную отправку, я ожидаю, что это будет потокобезопасным, даже если это не было объявлено явно.

Другие вопросы по теме