Протокол IMAP. Протокол POP3 был разработан для такой конфигурации, когда пользователь в основном работает только за одним компьютером, а почтовый клиент время от времени выбирает непрочитанную почту пользователя с удаленного хоста почтового ящика. После этого пользователь читает почту и, при желании, раскладывает по локальным почтовым папкам.
Однако если пользователь часто меняет свое рабочее место (днем работает в офисе, вечером — дома, а в дорогу берет с собой лэптоп), ему становится сложнее следить за почтой. В этом случае пользователь хотел бы видеть один и тот же набор почтовых файлов, независимо от того, где он работает. Протокол IMAP (Internet Message Access Protocol — Протокол доступа к сообщениям электронной почты через Internet) удовлетворяет эти потребности, позволяя управлять несколькими удаленными почтовыми папками и автоматически их синхронизировать с локальными копиями; благодаря атому пользователь всегда имеет представление о хранимой электронной почте. Клиенты IMAP предоставляют также пользователю возможность работать в автономном режиме и позволяют ему применять сложные серверные функции поиска сообщений.
К сожалению, протокол IMAP также довольно сложен и предусматривает некоторые действия, которые нелегко реализовать в простой модели запроса/ответа модуля Net::POP3, Кроме всего прочего, серверы IMAP время от времени отправляют клиенту незапрашиваемые сообщения, например, предупреждая его о поступлении некой почты. Для работы с протоколом IMAP в архиве CPAN предусмотрено не менее трех модулей Perl: Mail::IMAPClient, Net::IMAP и Net::IMAP::Simple.