Я столкнулся с точно такой же проблемой, и другие сообщили о периодических сбоях.Причина в том, что Transport.send с SMTP имеет два бесконечных тайм-аута, которые могут привести к зависанию вашего процесса!
Из документации SUN:
mail.smtp.connectiontimeout int Значение времени ожидания соединения сокета в миллисекундах. По умолчанию задано бесконечное время ожидания.
mail.smtp.timeout int Значение тайм-аута ввода-вывода в миллисекундах. По умолчанию задано бесконечное время ожидания.
Чтобы не «зависать» вечно, вы можете установить их явно:
Из СОЛНЦА: свойства всегда задаются как строки;столбец Тип описывает, как строка интерпретируется.Например, используйте
props.put("mail.smtp.port", "888");
Обратите внимание, что если вы используете протокол «smtps» для доступа к SMTP через SSL, все свойства будут называться «mail.smtps. *».
Таким образом, если вы установите два тайм-аута, вы должны получить «MessagingException», который вы можете обрабатывать с помощью try / catch, а не просто зависать.
Предполагая, что вы используете smtp, добавьте следующее, где t1 и t2 - ваши тайм-ауты в мс:
props.put("mail.smtp.connectiontimeout", "t1");
props.put("mail.smtp.timeout", "t2");
Конечно, это не устранит основную причину для тайм-аутов,но это позволит вам изящно справиться с проблемами.
Благодаря посту Зигфрида Гешла на Apache Commons
PS: Основная причина проблемы, с которой я столкнулся, связана с сетевым подключением, которое я использовал во время путешествия.Очевидно, соединение вызывало тайм-аут SMTP, которого у меня не было ни с какими другими соединениями.