Строки 15-24. Получение перечня содержимого почтового ящика. Все сообщения обрабатываются в цикле от первого до последнего. Для каждого сообщения выбирается заголовок путем вызова метода top(), выполняется его интерпретация и создание объекта Mail::Header, а затем осуществляется выборка полей Subject: и From:. Вызывается также метод seen() объекта IMAP для определения того, выполнялась ли выборка сообщения. Затем происходит вывод номера сообщения, имени отправителя, строки темы и информации о том, было ли оно прочитано пользователем. Продвижение сайтов также может использовать данные технологии для обработки почтовых сообщений при размещении информации в каталогах.
Строки 26-32. Подпрограмма clean_from(). Это — та же подпрограмма, что и в предыдущей версии этой программы; она преобразует адрес отправителя в более удобный формат.
API-интерфейс модуля Net::IMAP::Simple. Хотя модуль Net::IMAP::Simple очень похож на модуль Net::POP3, между ними есть очень важные различия. Самым существенным из них является то, что модуль Net::IMAP::Simple не наследует свои методы от модуля Net::Cmd и поэтому в нем не реализованы методы message () или code (). Кроме того, модуль Net::IMAP::Simple не является подклассом класса IO::Socket и поэтому к его объектам нельзя обращаться, как к дескрипторам файлов. Методы new () и login () аналогичны методам модуля Net::POP3:
Метод new() создает новый объект Net::IMAP::Simple. Первым параметром является имя хоста, и он должен быть обязательно указан (в отличие от аналогичного метода Net::POP3). За ним следует ряд опций, которые передаются непосредственно модулю IO::Socket::Inet.
В случае неудачного выполнения метод new{) возвращает значение undef и устанавливает в переменной $! определенный код ошибки. В ином случае он возвращает объект Net::IMAP::Simple, подключенный к серверу.