Javamail не хранит и не пересылает сообщения. Поэтому, если вы успешно отправили письмо на почтовый сервер, вызвав Transport.sendMessage () и не получив сообщение об ошибке. Он сидит на почтовом сервере, ожидая доставки. Вам нужно будет проверить, что вы установили в качестве SMTP-сервера, имени пользователя и пароля. Это то, что вы отправляете на Transport.connect (сервер, имя пользователя, пароль). Убедитесь, что они такие же, как те, которые вы используете в PHP. Если вы не устанавливаете их в PHP, то держу пари, что вы не используете те же настройки и, следовательно, почему один сервер занимает больше времени, чем другой.
Поместите некоторые операторы синхронизации вокруг вызовов к Transport.connect (), Transport.sendMessage (), Transport.close (). Посмотрите, сколько времени потребуется, чтобы пройти через этот раздел. Если это занимает очень короткое время, то вы знаете, что ошибка существует на стороне почтового сервера. Держу пари, что вы не разговариваете с сервером, с которым, как вы думаете, разговариваете.