Я использую JavaMail для отправки запросов электронной почты на SMTP-сервер. Я устанавливаю свойства mail.smtp.connectiontimeout и mail.smtp.timeout на 5 и 30 секунд соответственно и передаю оба из них в Session.getDefaultInstance (). Однако, когда я перехожу к Transport.send (), установленные мной тайм-ауты, кажется, игнорируются, и время ожидания на машине Solaris составляет около 3:45. На Mac время ожидания составляет около 1:30. Это ошибка JavaMail или мне нужно установить какие-то другие свойства?




Я думаю, что настройки тайм-аута были специфичны для Sun JVM, поэтому он может не работать на Mac точно так же.
У меня была эта проблема в прошлом - в конечном итоге из-за использования веб-потоков. Я добавил немного JMS, чтобы код веб-уровня отправлял запрос электронной почты - и чтобы слушатель сообщений (который был его собственным потоком) прослушивал и отправлял электронное письмо - в редких случаях, когда он застревал, это не так. t повлияет на остальную часть приложения (просто электронные письма заняли немного больше времени). На самом деле не решает основную проблему, но в итоге я получил лучший дизайн.