Получение сводных данных о содержимом почтового ящика IMAP
Программа pop_stats.pl, представленная в листинге ниже, позволяет получить сводные данные о содержимом почтового ящика POP3. Теперь эта программа будет доработана в целях получения сводных данных о содержимом почтового ящика IMAP. В качестве дополнительного средства новый сценарий imap_stats.pl показывает, было ли считано сообщение. Этот сценарий вызывается, как и pop_stats .pl, но с дополнительным необязательным параметром командной строки, который указывает имя рассматриваемого почтового ящика.
% imap_stats.pl Istein@localhost gd_bug_reports lstein@localhost password: gd has 6 messages (2 new) Honza Pazdziora Re: ANNOUNCE: GD::Latin2 patch (fwd) read Gurusamy Sarathy Re: patches for GD by Gurusamy Sarathy read Honza Pazdziora Re: ANNOUNCE: GD::Latin2 patch (fwd) read Erik Bertelsen GD-1.18, 2 minor typos read Erik Bertelsen GD fails on some GIF’s unread Honza Pazdziora GDlib version 1.3 unread
Получение сводки о содержимом почтового ящика IMAP
Строки 1-5. Загрузка модулей. Загружаются модули Net::IMAP::Simple, Mail::Header, а также модуль PromptUtil, используемый в предыдущих примерах.
Строки 6-9. Обработка параметров командной строки. Имя пользователя и имя хоста почтового ящика извлекаются путем сопоставления с образцом из первого параметра командной строки, а имя почтового ящика — из второго параметра. Если имя почтового ящика не указано, по умолчанию указывается имя inbox, которое представляет собой имя почтового ящика, применяемое по умолчанию во многих системах UNIX. Затем выдается запрос пользователю ввести пароль.
Строки 10-14. Подключение к удаленному хосту. Вызывается метод Net::IMAP::simple ->new() для подключения к указанному хосту, а затем выполняется вызов метода login () для проверки подлинности пользователя. Если эти этапы выполнены успешно, вызывается метод select объекта, позволяющий выбрать указанный почтовый ящик. Этот вызов возвращает общее число сообщений в почтовом ящике; если почтовый ящик пуст, возвращает значение 0, а если он не существует — значение undef. Выбирается номер последнего считанного сообщения путем вызова метода last ().