УДК 681.5

 

Г.Ж. Жетимекова1, Н.А. Кенежанова2

Е.А.Бөкетов атындағы Қарағанды мемлекеттік университеті1,

Қарағанды қаласының №6 жалпы білім беру орта мектебі2

 

Web–пошталық қызметін құру

 

PHP IMAP және РОРЗ хаттамалары арқылы жүзеге асады. Олар IMAP кітапханасы арқылы жеткізіледі. Осы бөлімнің кодын қолдану үшін IMAP кітапханасын орнату қажет. Ол жүйеде орнатылған болса phpinfo() функциясы арқылы көруге болады.

Егер кітапхана орнатылмаған болса онда кеңейтуді жүктеу қажет. Соңғы  нұсқасын қордан FTP арқылы жүктеуге болады:

 

ftp://ftp.cac.Washington.edu/imap/c-client.tar.Z

                   

UNIX жүйесінде қорды жүктеп оны операциялық жүйе шеңберінде компиляция жасауға болады. Содан кейін rfc822.h, mail.h и linkage.h файлдарын /usr/local/include  каталогына немесе басқа қосылған каталогка  көшіру керек. Сосын конфигурация сценарийін орындап, басқа параметрлерге  with-imap директивасын қосып РНР-ді  қайта компиляция жасау қажет.

Windows платформасында басқа альтернатива арналған. Алдын ала IMAP кеңейтуімен қоса әртүрлі кеңейтулермен  компиляцияланған РНР-дің версиясын мына сайттан жүктеуге болады:

http://www.php4win.de

IMAP функциясы РОРЗ және NNTP(Networks News Transfer Protocol – желілік жаңалықтарды жіберуге арналған хаттама) хаттамаларымен жақсы байланысатынын атап өту қажет.  Біз IMAP және РОРЗ хаттамаларын қолданамыз, бірақ   NNTP-ны қолдану үшін Warm Mail  қосымшасын кеңейтуге болады.

Бұл кітапхана көптеген функциядан тұрады, бірақ біздің проектіде тек бірнешеуін ғана қолданамыз. Олар қолдану процесі кезінде толығымен қарастырылатын болады.  Төменде бұл бөлімде қолданылатын IMAP функциялары келтірілген:

-     imap_open()

-     imap_close()

-     imap_headers()

-     imap_header ()

-     imap_fetchheader()

-     imap_body()

-     imap_delete ()

-     imap_expunge()

Қолданушы пошталық хатты оқу үшін сервер және тіркелу жазбасы жайында ақпарат алу керек. Қолданушы бұл мәліметтерді әр кез сайын қайта енгізіп отырмас үшін оларға қолданушылардың аттарымен паролі сақталатын мәліметтер қоры құрылады.

Бір қолданушыда электронды поштасының бірнеше тіркеу жазбасы болуы мүмкін. (Мысалы біреуі үйге, біреуі жұмысқа арналған). Бізге кез-келген тіркеу жазбасына  қосылуға мүмкіндік туғызу қажет. Сол үшін оларды мәліметтер қорына сақтау қажеттігі туындайды.

Қолданушының хатты оқуға, жауап беруге, өшіруге, қайта адрестеуге және жаңа хат жазуға мүмкіндігі болу қажет. Барлық оқу функциялары IMAP және  РОРЗ хаттамасы арқылы, ал хатты жіберу операциясы SMTP хаттамасы және  mail функциясы арқылы жүзеге асады.

Жобаны шолу.

Web жүйесіне  негізделген жалпы схемасы 3-кестеде берілген. Оның басқа пошталық клиенттерден айырмашылығы көп емес.

1- кесте

Warm mail қосымшасының интерфейсі пошталық жәшік деңгейінің және хаттың деңгейінің функционалды мүмкіндіктерін көрсетілуі

 

Диаграммада көрсетілгендей қолданушы бірінші жүйеге кіру керек, содан кейін барып орындалатын операциялардың тізімі беріледі.  Сол кезде ғана ол жана тіркеу жазбасын құрады немесе бұрын құрылған тіркеу жазбасының біреуін таңдай алады. Сонымен қатар қолданушы келген хаттарды оқуға, оларға жауап беруге, қайта адрестеуге, өшіруге және жаңасын құруға мүмкіндік туады[8].

Сонымен бірге қолданушыға нақты анықталған хаттың қосымша ақпараттарының тақырыбын көру опциясына мүмкіндік туады. Тақырыптарды көру арқылы хат жайында көп ақпаратты білуге болады. Пошта қай компьютерден жіберілгені туралы білуге болады. Бұл жағымсыз хаттардан «спэмминг» қорғануға ыңғайлы. Қандай машинадан хатты жіберілгені және хостқа қай уақытта түскені жайында білуге де болады. Бұл хат кешігіп келген жағдайларда наразылықтар туғызбау үшін қажетті. Егер қосымша тақырыптарда ақпараттарды таңдап жіберсе жіберуші қандай пошталық клиентті қолданғанын білуге болады.

Бұл жобада қосымшалардың бірнеше өте жақсы архитектуралары  қолданған. Әр модуль үшін  бір сценарий жиынының орнына үлкен көлемді  index.php сценарийі қолданылған. Ол қолданушының графиктік интерфейс бағдарламасының цикл оқиғасында үлкен роль атқарады. Батырма басқан кездегі сайттағы әрбір әрекет әрқайсысы өз параметрімен index.php сценарийіне ауысады. Қолданушыға қажетті ақпаратты шығару үшін параметрлеріне байланысты әртүрлі функциялар шақырылады. Функциялар әдеттегідей кітапханада сақталған.

2 кесте

Жаңа пошта жобасының файлдарының тізімі

Аты

Типі

Сипатталуы

index.php

Қосымша

Қосымшаны толық іске асыратын негізгі сценарий

include_fns.php

Функция

Қосымшаға қосылатын файлдардың жиыны

data_valid_fns.php

Функция

Енгізілген мәліметтерді тексеретін функциялар жиыны

do_fns.php

Функция

mail мәліметтер қорына қосылған функциялар жиыны

mail_fns.php

Функция

Электронды жәшікті ашу,хаттарды оқу сияқты т.б қызметтерді атқаратын электронды поштамен тығыз байланысты функциялар жиыны

oufput_fns.php

Функция

HTML-мазмұнынң қорытындысын шығаратын функциялар жиыны

user_auth_fns.php

Функция

Қолданушылардың аутентификациясының фунцияларының жиыны

create_database.sql

SQL

book_sc мәліметтер қорын және қолданушыларды тіркейтін SQL-код

 

Жүйені қолданушылар жайында мәліметтерді сақтау қажет. Әр қолданушы үшін келесі өрістер толтырылуы тиіс:

Username- Warm Mail қосымшасы үшін қолданушымен таңдалған атауы;

Password-қолданушымен таңдалған пароль;

address — жүйеден жіберілген хаттардың From (жіберуші) өрісінде көрсетілетін қолданушының электронды поштасының адресі;

displayname — "оқылатын" атау, жіберілетін хатта қолданушымен көрсеілген;

Сонымен қатар әр тіркеу жазбасында келесі мәліметтерді сақтау қажет:

username — тіркеу жазбасына қатысты Warm Mail-дағы қолданушының атауы;

server — тіркеу жазбасы орналасқан машина. Мысалы: localhost немесе mail.tangledweb.com.au;

port — берілген тіркеу жазбасына қосылу үшін арналған порт. Әдетте РОРЗ серверіне 110 номерлі, ал IMAP серверіне 143 номерлі порт қолданылады;

type — 'POPS' немесе ІМАР серверіне қосылуға арналған хаттама;

remoteuser — пошталық серверге қосылуға арналған қолданушының атауы;

accountid — тіркеу жазбасын идентификациясы үшін арналған ерекше кілт;

Мәліметтер қорын құру үшін SQL сұраныс қолдану қажет. Бұл SQL-сұранысты келесі жолды теру арқылы орындауға болады:

mysql -u root -p < create_database . sql

(root ) ерекше құқықты қолданушыға  өз парольін  енгiзуге талап етіледi. Сұранысты орындамас бұрын create_database.sql и db_fns.php фонда пошталық қызмет қолданушысының парольін өзгерту қажет.

CD-ROM ішiне populate.sql-дың файлы қосымша қосылған. Бұл қосымшада қолданушыларды тіркеу процесі іске асырылмайды. Егер үлкен көлемді қосымша жоспарланса онда оны өз алдына орындауға болады.  populate.sql сценарийі осы формаға арналған. Қолданушы болу үшін өзінің мәліметтерін енгізіп оларды жіберу қажет.

Бұл сценарийде оқиғаларды өңдеу қағидасы қолданған. Ол әрбір оқиға үшін функциялардың орындаудағы  логикалық тізбек іске асырылған. Осы жағдайда беттерге батырмаларда шертулар орындаған кездегі оқиға қолданушымен іске қосып жатыр. Батырмалардың көпшілігі display_button функциясымен іске асады, ал функция display_form_button  форма жіберу батырмалары (submit)  үшін қолданып жатыр. Екі функцияда output_fns.php кітапханасында орналасқан. Олардың барлығы URL-адреске бағынышты:

index.php?action=log-out

index.php сценарийі шақырылған кезде Saction айнымалысының мәні  өңдеуші қандай оқиғалар іске қосу керек болып жатқанын анықтайды

Web -  пошталық қызметін құру барысында сценаридің төрт негізгі бөлімін көрсетуге:

-    Браузерге беттің тақырыбын жіберу алдында болуға тиісті операциялар. Мұнда сеансты іске қосу, қолданушымен таңдалған әрекетті алдын ала өңдеуді орындау және тақырып түрін анықтау.

-    Қолданушымен таңдалған әрекет үшін қажетті тақырып және меню жолы өңделіп жіберіледі.

-    Қабылданған әрекетке тәуелді орындалу үшін сценарийдің фрагменті таңдалады. Әр түрлі әрекеттер  әр түрлі функцияны іске қосады.

-    Беттің төменгі колонтитулы жіберіледі.