Определить POP / IMAP сервер с адреса электронной почты - PullRequest
4 голосов
/ 22 января 2010

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

Ответы [ 5 ]

6 голосов
/ 25 сентября 2012

Вот как 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

2 голосов
/ 22 января 2010

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

1 голос
/ 22 января 2010

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

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

Ура, Dan

0 голосов
/ 10 ноября 2014

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

Все механизмы поиска используют домен адресов электронной почты в качестве базы для поиска. Например, для адреса электронной почты fred@example.com поиск выполняется в следующем порядке:

  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 в качестве поддерживаемых механизмов, но в настоящее время мы этого не делаем.

0 голосов
/ 22 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...