Поиск SMTP-хоста и порта, знающих адрес электронной почты -с помощью JAVA API

Я сделал простое приложение для отправки электронной -почты с помощью Java API и у меня возник вопрос:

Есть ли способ узнать SMTP-хост, зная адрес электронной почты -одного из них? кто войдет в систему, чтобы отправить электронное письмо -? И еще порт?

Например, если адрес электронной почты отправителя -— sender@gmail.com, SMTP-хост — smtp.gmail.com, а порт — 465. Если адрес электронной почты отправителя -— sender@yahoo. com, SMTP-хост smtp.yahoomail.com и порт 25.

Предположим, я этого не знаю, есть ли способ найти эту информацию с помощью классов Java API? Обратите внимание, что я новичок в Java.:)

Заранее спасибо,

Андреа


Спасибо за ответы. Я пытался сделать следующее:

    public static String getMXRecordsForEmailAddress(String eMailAddress) { 

            String returnValue = null; 

            try { 
                String hostName = getHostNameFromEmailAddress(eMailAddress); 
                Record[] records = new Lookup(hostName, Type.MX).run(); 
                if (records == null) { 
             throw new RuntimeException("No MX records found for domain " + hostName + ".");
 } 

                // return first entry (not the best solution) 
                if (records.length > 0) { 
                        MXRecord mx = (MXRecord) records[0]; 
                        returnValue = mx.getTarget().toString(); 
                } 
            } catch (TextParseException e) { 
                throw new RuntimeException(e); 
            } 

            System.out.println("return value = "+returnValue);
            return returnValue; 
        } 

Но независимо от значения hostName (, например. gmail.com, yahoo.com) Record[] records = new Lookup (hostName, Type.MX ).run (); всегда возвращает ноль.

Я почти уверен, что что-то пропустил, но не знаю что. Не могли бы вы помочь мне с этим? Можете ли вы сказать мне, что я делаю неправильно?

Большое спасибо,

Андреа

6
задан BoltClock 22 April 2012 в 14:41
поделиться