Самое простое - сконфигурировать imap-сервер так, чтобы он проверял логин-пароль из той же точки, откуда это делает твой "портал".
Как это сделать - выбирай сам: sql-запросом, http-запросом, вызовом внешней команды, завернуть все в ldap... Вариантов тут стопицот, выбирай на вкус.
(Ну это конечно, если у тебя в качестве imap-сервера что-то вменяемое, скажем, dovecot или courier-imap какой-нибудь).
на данный момент Dovecot тоже имеет свою БД в MySQL и пользователи там хранятся (логин и пароль) в том же виде.
Только 2 проблемы возникает:
1. ПХП после своего выполнения напрочь забывает что он только что делал, и потом что бы вспомнить использует либо сессии либо куки (в плане авторизации)
- От сюда вопрос: Как сохранить авторизацию на IMAP сервере, ведь после каждого выполнения скрипта (по хорошему тону) нужно выполнять imap_close().
Получается что:
- при входе в почтовый модуль ПХП нужен пароль что бы открыть папку входящие.
- при переходе по любым папкам почтового ящика (а их минимум 4 (входящие, исходящие, черновики, корзина)) ПХП нужно передавать пароль для нового imap_open();
2. При консольном проходе по всем ящикам (что бы перенести их содержимое в БД (еще один из экспериментов)) в ПХП так же надо передать пароль от ящика в открытом виде, т.к. пароль что в портале, что в почте зашифрованы.
Итог:
Авторизация (на форуме, портале, чате и т.п.) сохраняется в куках и/или сессиях, а как сохранить авторизацию от IMAP сервера при условии что скрипт после своей отработки выполняет imap_close()?