Определить сервер POP/IMAP по адресу электронной почты

Есть ли способ определить сервер POP или IMAP по адресу электронной почты? Я создаю приложение для нетехнических пользователей, и я действительно не хочу беспокоить их, спрашивая их серверы IMAP/POP. mail2web.com делает это, но я не знаю, как это сделать.


person raghu    schedule 22.01.2010    source источник


Ответы (5)


Вот как это делает Thunderbird

/**
18  * Try to guess the config, by:
19  * - guessing hostnames (pop3.<domain>, pop.<domain>, imap.<domain>,
20  *                       mail.<domain> etc.)
21  * - probing known ports (for IMAP, POP3 etc., with SSL, STARTTLS etc.)
22  * - opening a connection via the right protocol and checking the
23  *   protocol-specific CAPABILITIES like that the server returns.
24  */

http://mxr.mozilla.org/comm-central/source/mailnews/base/prefs/content/accountcreation/guessConfig.js

person Midhat    schedule 25.09.2012

Thunderbird 3 это тоже.. Я бы взглянул на исходный код.
Хотя я думаю, что это просто таблица поиска..

person Joril    schedule 22.01.2010
comment
Это исходный файл в Thunderbird, который это делает: mxr.mozilla.org/comm-central/source/mailnews/base/prefs/content/ - person Midhat; 25.09.2012

В стандарте нет ничего, что диктовало бы сервер POP/IMAP для данного домена. Можно использовать только соглашение или, как предлагает Йорил, таблицы поиска. SMTP-серверы отличаются друг от друга, поскольку существует функциональное требование для отправки почты на следующую остановку. Получение (через POP/IMAP) — это полностью локальная проблема администратора домена. Извини.

Я думаю, вы могли бы взять домен и создать такое имя сервера, что [email protected] станет pop.mymail.com и imap.mymail.com. Или, возможно, пойти дальше и опросить записи MX и выполнить аналогичные замены. Затем вы можете просмотреть список серверов-кандидатов в поисках ответа POP/IMAP. Хотя может быть немного изворотливым на фронте безопасности.

Привет, Дэн

person Dan Kendall    schedule 22.01.2010

В общем, нет абсолютно никакого способа сделать это правильно.

Тем не менее, вы можете использовать таблицы общих почтовых провайдеров для заполнения значений по умолчанию, и вы можете заполнить smtp.example.com и т. д., но это все равно не удастся в некоторых простых случаях, например, в моей рабочей системе, где все находится на почте. .wherever.com с необычными номерами портов. Итак, в конце концов, пользователь должен иметь возможность переопределить все, что вы делаете.

Если вы действительно хотите, чтобы это было общим, вам также придется иметь дело с сертификатами и EAP.

person Andrew McGregor    schedule 22.01.2010

Тандерберд хорошо справляется со своей задачей. Этот метод описан здесь https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration. Ниже приведена выдержка из документации.

Все механизмы поиска используют домен адресов электронной почты в качестве основы для поиска. Например, для адреса электронной почты [email protected] поиск выполняется следующим образом (в таком порядке):

  1. tb-install-dir/isp/example.com.xml на жестком диске
  2. проверьте autoconfig.example.com
  3. поиск "example.com" в ISPDB
  4. найдите «MX example.com» в DNS, а для mx1.mail.hoster.com найдите «hoster.com» в ISPDB.
  5. попробуйте угадать (imap.example.com, smtp.example.com и т. д.)

В будущем мы можем добавить записи DNS SRV в качестве поддерживаемого механизма в будущем, но в настоящее время мы этого не делаем.

person P. R. Ribeiro    schedule 10.11.2014