Отправка сообщений электронной почты с вложениями
В этом проекте мы хотели бы, чтобы в соответствии с предпочтениями пользователей бюллетени можно было отправлять им в форме простого текста или в виде “украшенной” HTML-версии.
Для отправки HTML-файла с внедренными в него изображениями потребуется определиться со способом отправки вложений. Простая PHP-функция mail() не обеспечивает удобной поддержки отправки вложений. Поэтому вместо нее мы будем использовать замечательный пакет Mail_Mime из библиотеки PEAR, который был разработан Ричардом Хейесом (Richard Heyes). Это пакет умеет обрабатывать HTML-наложения, поэтому он будет использоваться для вложения любых изображений, содержащихся в HTML-файле.
Инструкции по установке пакета Mail_Mime можно найти в приложении А, в части, посвященной инсталляции библиотеки PEAR.
Обзор решения
При написании кода этого проекта мы снова воспользуемся подходом, управляемым событиями, как это уже имело место
Как и ранее, мы начинаем разработку с представления набора диаграмм, изображающих последовательности действий, которые пользователь может выполнять в системе. В данном случае мы имеем три диаграммы, представляющие три различных набора взаимодействий пользователя с системой. Пользователь имеет право выполнять различные действия, когда он не зарегистрирован в системе, когда он зарегистрирован в качестве рядового пользователя и когда он зарегистрирован в качестве администратора. Возможные действия показаны на рисунках 30.1, 30.2 и 30.3, соответственно.
На рис. 30.1 изображены действия, которые может предпринять незарегистрированный пользователь. Легко заметить, что он может зарегистрироваться (если уже имеет учетную запись), создать учетную запись (если он ее еще не имеет) или просмотреть списки рассылки, доступные для подписки (это является частью маркетинговой тактики).
Действия, которые пользователь может предпринять после регистрации, показаны на рис. 30.2. Пользователь может изменять параметры настройки своей учетной записи (адрес электронной почты и предпочтения), изменять свой пароль и изменять набор списков рассылки, на которые он подписался ранее.
Действия, доступные для зарегистрированного в системе администратора, можно видеть на рис. 30.3. Как следует из этого рисунка, администратору доступно большинство действий, разрешенных для рядового пользователя, а также набор дополнительных возможностей. Администратор может создавать новые списки рассылки, создавать новые сообщения для списков рассылки путем загрузки файлов и просматривать сообщения перед их отправкой.
Поскольку приложение использует подход, управляемый событиями, основная часть приложения содержится в единственном файле index.php, который содержит вызовы множества библиотечных функций. Краткое описание файлов этого приложения Реализацию проекта мы начнем с создания базы данных, в которой будем хранить информацию о подписчиках и списках рассылки.