http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
Таблицы базы данных | Книга AJAX
 

AjaxMail будет хранить почтовые сообщения в базе данных, поэтому нам потребуется создать несколько таблиц. Если у вас есть такая воз¬можность, создайте на сервере MySQL новую базу данных с именем AjaxMail. (Подойдет и любая другая уже созданная база данных) Вбазе данных создайте три таблицы: AjaxMailFolders, AjaxMailMessages нAjaxMailAttachments.
Первая таблица, AjaxMailFolders, содержит перечень папок, доступных в AjaxMail:
' CREATE TABLE AjaxMailFolders (
Folderld int(11) NOT NULL auto_increment, Name text NOT NULL, PRIMARY KEY (Folderld)

INSERT INTO AjaxMailFolders VALUES (1, 'Inbox'); INSERT INTO AjaxMailFolders VALUES (2, 'Trash');
Каждая из папок в AjaxMail характеризуется уникальным идентифи¬катором Folderld (автоинкрементное поле, на котором построен пер¬вичный ключ) и именем. В нашем примере всего две папки: Inbox (Вхо¬дящие) и Trash (Корзина) но вы можете добавить собственные, назвав их по своему усмотрению.
В таблице AjaxMailMessages будет храниться информация о из сообщений. Она имеет 11 полей: уникальный идентифик номер (автоинкрементное поле), различные характеристики ния (То (Кому), From (От кого), Subject (Тема) и т. д.), имя папки, в рой находится сообщение (Inbox, Trash и т. д.), и признак того, чт» щение было прочитано пользователем. Создание таблицы про ся следующим SQL-предложением:
CREATE TABLE AjaxMailMessages (
Messageld int(11) NOT NULL auto_increment,
CC text NOT NULL, . . BCC text NOT NULL, 'From' text NOT NULL, Subject text NOT NULL,
Date bigint(20) default NULL, 'ЩШ-'^Щ???4"■ -Message text NOT NULL,
HasAttachments tinyintd) NOT NULL default 'О', ХШ'М:
Folderld int(11) NOT NULL default '0', PRIMARY KEY (Messageld)

Поле Messageld является автоинкрементным и предназначено нения уникального идентификационного номера сообщения • данных, кроме того, это первичный ключ таблицы. Поля То, ж From, Subject, Date и Message предназначены для хранения текст* щения и дополнительной информации о нем. (Имена полей Те заключены в одиночные кавычки по той простой причине, что: падают с ключевыми словами языка SQL.) Поля HasAttachments ■ определены как tinyint и поэтому могут хранить только з или 1 (false или true). Наконец, поле Folderld содержит иде ционный номер папки, в которой размещается сообщение. Г этому имеется возможность выбирать сообщения, находящиеся кой-то одной из папок.
Если почтовое сообщение содержит вложения, то все они бу ниться в таблице AjaxMailAttachments:
CREATE TABLE AjaxMailAttachments (
Attachments int(ll) NOT NULL auto_increment, "-"4
Messageld int(11) NOT NULL default 'О',
„;: Filename text NOT NULL, ' '^.Х^ША'Г^ША-^
ContentType text NOT NULL, \УШ^.;/'Т1.^4:Ш:{.:М0М'-' Size int(11) NOT NULL default ,0\ Data longtext NOT NULL,
PRIMARY KEY (Attachments
хогично другим таблицам, AjaxMailAttachments содержит автоин-1ентное поле. Это поле называется Attachments и хранит уникаль-идентификационный номер для каждого из вложений. Следую-поле, Messageld, хранит идентификатор почтового сообщения, [которому присоединено данное вложение (значение этого поля сов-со значением поля Messageld в таблице AjaxMailMessages). В сле¬зших полях, Filename и ContentType, хранятся имя файла с вложени-[и тип содержимого вложения (оба этих значения потребуются поль-«гелю, чтобы иметь возможность скачать вложение). Последние . поля, Size и Data, хранят размер вложения (в байтах) и его содер-(ое соответственно.Константы в языке РНР создаются с помощью метода def ine(), которо¬му передаются имя константы (в виде строки) и ее значение:
def i ne (^MY4cbNSf ANTi:";' 'nv//valii^ Й :v -: if%■ \ й: f:
Первая группа констант непосредственно связана с базой данных MySQL:
i* define("DB_USER", "root"); •• * - defineCI'DBiPASSWORD", "password"); ' ШdefineC'WLSERVER". "localhost");' k- define("DB_NAME", "AjaxMail");.
Эти константы понадобятся для соединения с базой данных, и их надо будет изменить в соответствии с параметрами соединения с конкрет¬ной базой данных. Далее нам потребуются константы, описывающие сервер РОРЗ:
define("P0P3_USER", "test@dofflain.com"); define("P0P3.PASSW0RD", "password");
define("P0P3.SERVER", "mai1.domain.com");
Значения этих констант также должны быть приведены в соответст¬вие с параметрами вашего сервера РОРЗ. Как вы уже наверняка дога¬дались, нам потребуется информация и о сервере SMTP:
define("SMTP_00_AUTHORIZATION", true); define("SMTPJJSER", "test@domain.com");
define("SMTP_PASSWORD", "password"); define("SMTP_SERVER", "mail.domain.com");
, define("EMAIL_FROM_ADDRESS", "test@domain.com"); define("EMAIL_FROM_NAME", "Joe Somebody");
В первых четырех строках определены константы, имеющие ние к процедуре идентификации пользователя на сервере SMTP, вая константа определяет необходимость аутентификации на SMTP, для того чтобы отправить сообщение. Если константа значение true, тогда должны быть определены константы SKIP и SMTP_PASSWORD. (А если она равна false, значит, сервер SMTP не ет аутентификации пользователя для отправки сообщения.)
Вторая группа параметров SMTP определяет пользовательские ки. Константа EMAIL_FROM_ADDRES должна содержать ваш элек! адрес, а константа EMAIL_FROM_NAME - ваше имя. Получателю эта мация будет доступна в виде сведений об отправителе.
Последний параметр, константа MESSAGES_PER_PAGE, определяет ство почтовых сообщений, которые могут одновременно отоб на одной странице:
define("MESSAGES_PER_PAGE", 10);
Эти константы понадобятся приложению для получения эле почты, подключения к базе данных, передачи сообщений и отображении информации.