Есть ли способ определить сервер POP или IMAP по адресу электронной почты? Я создаю приложение для нетехнических пользователей, и я действительно не хочу беспокоить их, спрашивая их серверы IMAP/POP. mail2web.com делает это, но я не знаю, как это сделать.
Определить сервер POP/IMAP по адресу электронной почты
Ответы (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 */
Thunderbird 3 это тоже.. Я бы взглянул на исходный код.
Хотя я думаю, что это просто таблица поиска..
В стандарте нет ничего, что диктовало бы сервер POP/IMAP для данного домена. Можно использовать только соглашение или, как предлагает Йорил, таблицы поиска. SMTP-серверы отличаются друг от друга, поскольку существует функциональное требование для отправки почты на следующую остановку. Получение (через POP/IMAP) — это полностью локальная проблема администратора домена. Извини.
Я думаю, вы могли бы взять домен и создать такое имя сервера, что [email protected] станет pop.mymail.com и imap.mymail.com. Или, возможно, пойти дальше и опросить записи MX и выполнить аналогичные замены. Затем вы можете просмотреть список серверов-кандидатов в поисках ответа POP/IMAP. Хотя может быть немного изворотливым на фронте безопасности.
Привет, Дэн
В общем, нет абсолютно никакого способа сделать это правильно.
Тем не менее, вы можете использовать таблицы общих почтовых провайдеров для заполнения значений по умолчанию, и вы можете заполнить smtp.example.com и т. д., но это все равно не удастся в некоторых простых случаях, например, в моей рабочей системе, где все находится на почте. .wherever.com с необычными номерами портов. Итак, в конце концов, пользователь должен иметь возможность переопределить все, что вы делаете.
Если вы действительно хотите, чтобы это было общим, вам также придется иметь дело с сертификатами и EAP.
Тандерберд хорошо справляется со своей задачей. Этот метод описан здесь https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration. Ниже приведена выдержка из документации.
Все механизмы поиска используют домен адресов электронной почты в качестве основы для поиска. Например, для адреса электронной почты [email protected] поиск выполняется следующим образом (в таком порядке):
- tb-install-dir/isp/example.com.xml на жестком диске
- проверьте autoconfig.example.com
- поиск "example.com" в ISPDB
- найдите «MX example.com» в DNS, а для mx1.mail.hoster.com найдите «hoster.com» в ISPDB.
- попробуйте угадать (imap.example.com, smtp.example.com и т. д.)
В будущем мы можем добавить записи DNS SRV в качестве поддерживаемого механизма в будущем, но в настоящее время мы этого не делаем.