Начнем с реализации главной страницы этого примера. Файл, представленный в примере 16.2, используется преимущественно для вывода ссылок на страницы отправки и просмотра. Она реализована в виде статического файла HTML, поскольку не содержит динамической информации.
Пример 16.2. PP4E\Internet\Web\PyMailCgi\pymailcgi.html
<HTML>
<TITLE>PyMailCGI Main Page</TITLE>
<BODY>
<H1 align=center>PyMailCGI</H1>
<H2 align=center>A POP/SMTP Web Email Interface</H2>
<P align=center><I>Version 3.0 June 2010 (2.0 January 2006)</I></P>
<table>
<tr><td><hr> <h2>Actions</h2> <P>
<UL>
<LI><a href="cgi-bin/onRootViewLink.py">npocMompemb, Ответить, Переслать, Удалить входящее сообщение</а>
<LI><a href="cgi-bin/onRootSendLink.py">Отправить новое сообщение по SMTP</a> </UL></P>
<tr><td><hr>
<Ь2>Обзор</Ь2>
<P>
<A href="http://rmi.net/~lutz/about-pp.html">
<IMG src="ppsmall.gif" align=left
alt="[Book Cover]" border=1 hspace=10></A>
Этот сайт реализует простой веб-интерфейс к учетной записи электронной почты по протоколам POP/SMTP. С помощью этого интерфейса любой желающий сможет отправить письмо, но из-за ограничений безопасности вы не сможете просматривать электронную почту, не определив параметры своей учетной записи на почтовом сервере. Веб-приложение PyMailCgi реализовано как набор CGI-сценариев на языке Python, выполняющихся на сервере (не на вашем локальном компьютере) и генерирующих разметку HTML при взаимодействии с броузером. Подробности смотрите в книге ^Программирование на Python, 4-e изданиеГ/ХХДг
<tr><td><hr>
<И2>Примечания</П2>
^Внимание: Версия PyMailCgi 1.0 первоначально была создана во время 2-часового ожидания вылета из чикагского аэропорта O‘Hare. Эта версия не такая быстрая и полнофункциональная, как PyMailGUI (например, каждый щелчок запускает выполнение операции через Интернет, здесь отсутствует операция сохранения электронной почты и не поддерживается многопоточный режим выполнения, кроме того, здесь не предусматривается кэширование заголовков или уже просмотренных сообщений). С другой стороны, PyMailCgi может взаимодействовать с любым веб-броузером и не требует устанавливать Python (и Tk) на ваш компьютер.
<P> Если вы решите использовать эти сценарии для чтения своей почты, то следует учесть, что PyMailCgi не гарантирует безопасность пароля вашей учетной записи. Смотрите примечания в странице операции просмотра сообщения, а также дополнительную информацию в книге относительно безопасности.
<р><!><и>Новое в версии 2</U></I>: программа PyMailCGI теперь поддерживает просмотр и отправку вложений для одного пользователя, и в ней удалось избежать необходимости излишней повторной загрузки почты в некоторых случаях. При отображении страницы со списком она загружает только заголовки сообщений, а загрузка полного текста сообщения выполняется только при выборе его для просмотра.
<p><I><U>Hoeoe в версии 3</U></I>: программа PyMailCGI теперь выполняется под управлением Python 3.X (только) и использует множество новых особенностей из пакета mailtools: декодирование и кодирование интернационализированных заголовков, декодирование основного текста почтового сообщения и так далее. Из-за снижения функциональных возможностей модуля cgi и пакета email в Python 3.1 версия 3.0 не поддерживает отправку двоичных вложений или текстовых вложений с несовместимой кодировкой, однако сохраняется возможность просмотра вложений во входящих сообщениях (смотрите главы 15 и 16).
<р>Смотрите также:
<UL>
<И>Программу <I>PyMailGUI</I> в каталоге Internet, которая
реализует более полноценный графический интерфейс к электронной почте на основе Python+Tk
<И>Программу <I>pymail.py</I> в каталоге Email, которая реализует простой интерфейс командной строки к электронной почте
<И>Модуль Python imaplib, реализующий поддержку протокола IMAP электронной почты вместо POP
</UL></P>
</table><hr>
<A href="http://www.python.org">
<IMG SRC="PythonPoweredSmall.gif" ALIGN=left ALT="[Python Logo]" border=0 hspace=15></A> <A href="http://rmi.net/~lutz/about-pp.html">[Book]</a> <A href="http://www.oreilly.com">[O’Reilly]</a> </BODY></HTML>
Файл pymailcgi.html описывает корневую страницу системы и располагается в подкаталоге PyMailCgi, выделенном специально для этого приложения и позволяющем хранить его отдельно от других примеров. Для доступа к этой системе запустите локальный веб-сервер, как было описано в предыдущем разделе, и введите в адресной строке броузера следующий адрес URL (или другой, в зависимости от используемого вами веб-сервера):
http://localhost:8000/pymailcgi.html
После этого сервер вернет страницу, подобную той, что показана на рис. 16.2 в веб-броузере Google Chrome в Windows 7. На протяжении всей этой главы вместо Internet Explorer я буду использовать Chrome — для разнообразия, а также потому, что он позволяет отображать страницы с большим числом подробностей. Откройте ее в своем броузере, чтобы убедиться в работоспособности системы — она переносима так же, как Веб, HTML и CGI-сценарии на языке Python.
I = I (=J I К I
,———— *______________________________ > i 1— j
r Q PyMailCGIMain Page x \»____________________
<- -> C ft ☆ littp://lo<dlliost:80(№/pyriidil<()i.htfiil ► D’ Л’
PyMailCGI
A POP/SMTP Web Email Interface
Version 3.0 June 2010 (2.0 January 2006)
Actions
• View, Reply, Forward. Delete POP mail
♦ Send a new email message by SMTP
Overview
This site implements a simple web-browser interface to POP/SMTP email accounts. Anyone can send email with this interface, but for security reasons, you cannot view email unless you install the scripts with your own email account information, in your own server account directory. PyMailCgi is implemented as a number of Python-coded CGI scripts that run on a server machine (not your local computer), and generate HTML to interact with the client/browser. See the book Programming Python, 4th Edition formore details.
Рис. 16.2. Главная страница PyMailCGI
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011