Я специально не знаком с Javamail, но я бы сказал так: даже «успех» не может быть успехом.
Ваше определение жестких и мягких отказов должно быть достаточно простым для проверки. Если вы не можете найти сервер, это трудно, если вы подключены к сети, и сервер говорит: «Почтовый ящик не найден», это «мягкий». Но что, если сервер примет сообщение, а затем отскочит его? Многие интерфейсные серверы принимают неизвестные сообщения, либо по своему замыслу, либо по необходимости (интерфейсная ретрансляция для «настоящих» внутренних серверов), и если позднее обнаруживается, что сообщение адресовано по недействительному адресу, сообщение возвращается отправителю. В этом случае вы будете сообщать об «успешном» отправлении, когда оно действительно не будет успешным.
Обеспечение доставки практически невозможно без какого-либо "щелчка здесь", встроенного в сообщение.