Fig.1 Əlaqə formasının HTML kodu
Burada göstərilən rəy formasının sonda aşağıdakı ekran görüntüsündə necə göründüyünü görə bilərsiniz.
Beləliklə tələb olunan forma yaradılmışdır. İndi isə e-poçt mesajı şəklində məlumatların emalı və göndərilməsi məsələlərinə keçə bilərsiniz.
PHPMailer kitabxanasının quraşdırılması
Daha əvvəl qeyd edildiyi kimi, poçt göndərmək üçün biz PHPMailer kitabxanasından istifadə edəcəyik ki, bu da elektron poçt vasitəsilə e-poçt göndərilməsini xeyli asanlaşdıracaq. SMTP protokoluüçüncü tərəf poçt xidmətində icazə ilə.
Onu quraşdırmaq üçün yükləmək lazımdır zəruri fayllar. Bunu GitHub veb xidmətindən Composer (PHP üçün paketdən asılılıq meneceri) istifadə edərək etmək olar. Və ya sadəcə lazımi faylları adi şəkildə yükləyin.
ekran görüntüsü 73
Aşağıda PHPMailer kitabxanasının müntəzəm endirilməsi üçün keçidin qeyd olunduğu GitHub veb xidməti səhifəsidir.
Bundan başqa, son versiya Bu məqaləni yazarkən saxlanmış 6.0.7-ni əlavə edilmiş materiallardan yükləmək olar.
İstənilən halda, yaranan arxiv faylı paketdən çıxarılmalı, bundan sonra çıxarılan PHPMailer-master qovluğu bütün məzmunu ilə birlikdə saytın kökünə yerləşdirilməlidir. Eyni zamanda, sadəlik üçün onun adını PHPMailer adlandıra bilərsiniz. Aşağıda saytın kök kataloqunda yerləşdirilmiş PHPMailer qovluğunun məzmunu verilmişdir.
Beləliklə, biz PHPMailer kitabxanasını quraşdırdıq. Bundan sonra veb saytımızdan e-poçt mesajları göndərəcəyimiz bir skript yaratmağa başlaya bilərik.
SMTP vasitəsilə poçt göndərmək üçün skript yaradırıq
Skripti tərtib etmək üçün əvvəllər kitabxananı yükləmək üçün istifadə etdiyimiz GitHub səhifəsində verilmiş PHPMailer-dən istifadə üçün tövsiyələrdən istifadə etmək kifayətdir.
Onlar, xüsusən, skriptin əvvəlində qlobal ad sahəsinə PHPMailer siniflərinin idxalının tələb olunduğunu göstərir. Və müvafiq kodun xüsusi sətirləri verilir. SMTP vasitəsilə poçt göndərmə seçimi də daxil olmaqla, PHPMailer-in xüsusiyyətləri və üsullarından istifadə nümunələri də var.
Ancaq bu kifayət deyilsə, bu kitabxananın bütün xüsusiyyətləri və üsullarının təsvirini ehtiva edən sənədlərdən də istifadə edə bilərsiniz.
ekran görüntüsü 74
Aşağıda avtorizasiya ilə SMTP vasitəsilə rəy formasından məktub göndərmək üçün skript kodu verilmişdir. PHPMailer ilə əlaqəli bütün sətirlərin izahatla verildiyi və yüngül fonla vurğulandığı yerdə.
Əvvəllər digər prosessorlarda istifadə etməli olduğumuz formadan məlumatların qəbulu və emalı ilə bağlı fraqmentlər də daxil olmaqla qalan hissə qaranlıq fonla göstərilir. Onlar daha əvvəl PHP-də formadan məlumatların alınması və yoxlanılması məsələlərinə həsr olunmuş məqalədə bir qədər ətraflı müzakirə edilmişdir. Forma məlumatlarını yoxlamaq və emal etmək üçün universal istifadəçi funksiyası haqqında da danışdıq check_symbol().
Biz bu skripti əvvəllər rəy formasını yaratdığımız kontakty.php faylına yerləşdirəcəyik.
//----PHPMailer-dən istifadə edərək SMTP vasitəsilə məktub göndərmək üçün skript----
// PHPMailer siniflərini qlobal ad sahəsinə idxal edin. Onlar funksiyanın içərisində deyil, skriptin yuxarısında olmalıdır
istifadə edin PHPMailer\PHPMailer\PHPMailer;
istifadə edin PHPMailer\PHPMailer\Exception;
əgər
(!boş($_POST["əlaqə düyməsi" ])) (
$name = $_POST["əlaqə adı" ];
$name = check_simvolu ($name, "Ad" , "1" , "/^+\z/iu" );
$email = $_POST["əlaqə-e-poçt" ];
$email = check_symbol ($email, "E-mail" , "1" , "/^+@(+\.)+(2,6)\z/i");
$subject = $_POST["əlaqə-mövzu" ];
$subject = check_symbol ($mövzu, "Mesajın mövzusu" , "1" , "0" );
$şərh = $_POST["əlaqə-şərh" ];
$şərh = yoxlama_simvolu ($şərh, "Mesaj mətni", "1"
, "0"
);
əgər
(!boş($GLOBALS["alert" ])) (
$alert = "Forma məlumatları göndərilmədi. Aşağıdakı xətalar tapıldı:\n".$alert;
daxildir"alert.php" ;
başqa
{
//Kitabxananın qoşulması
tələb edir"PHPMailer/src/PHPMailer.php" ;
tələb edir"PHPMailer/src/Exception.php" ;
tələb edir"PHPMailer/src/SMTP.php" ;
$mail = yeni PHPMailer(); //Sinifin işə salınması
$dan = " [email protected]"
; //Məktubun göndərildiyi e-poçt ünvanı
$to = " [email protected]"
; //Alıcının ünvanı
$mail -> isSMTP(); //SMTP protokolundan istifadə edin
$mail -> Host = "smtp.yandex.ru" ; //Poçt serverinin ünvanı
$mail -> SMTPAuth = doğru
; // Avtorizasiya rejimini aktivləşdirin
$mail -> İstifadəçi adı = " [email protected]"
; //Üçüncü tərəfin e-poçt xidmətinə qoşulmuş domen e-poçtundan daxil olun (bu halda Yandex.Mail)
$mail -> Parol = "27MrDon89" ; //Domen poçtu üçün parol
$mail -> SMTPSecure = "ssl" ; //Şifrələmə protokolu
$mail -> Port = "465" ; //SMTP server portu
$mail -> CharSet = "UTF-8" ; //Kodlaşdırma
$mail -> setFrom ($from, "Administrator" ); //Göndərənin ünvanı və adı
$mail -> Ünvan əlavə et ($to, "Administrator" ); //Alıcının ünvanı və adı
$mail -> isHTML ( doğru
); //E-poçt formatını HTML olaraq təyin edin
$mail -> Mövzu = "Əlaqə forması təqdim edildi"; //E-poçt mövzusu (başlıq)
$mail -> Bədən = "
Göndərən adı: $adı
Göndərənin ünvanı: $e-poçt
Mesajın mövzusu: $mövzu
Mesaj məzmunu: $şərh
"
; //Mesajın məzmunu
$mail -> AltBody = "Alternativ hərf mətni"; //E-poçt müştəri HTML formatını dəstəkləmirsə, alternativ e-poçt
$mail -> SMTPDebug = 0 ; //SMTP sazlamasını aktivləşdirin: 0 - deaktiv (normal istifadə üçün), 1 = müştəri mesajları, 2 - müştəri və server mesajları
əgər($mail -> send()) (
$alert = "Mesaj göndərildi"; //Məktubun uğurla göndərilməsi haqqında brauzerin dialoq qutusuna mesaj çıxarın
başqa
{
$alert = "Xəta, e-poçt göndərilə bilməz:".$mail -> ErrorInfo ; //Səhv mesajını çıxarın
daxildir"alert.php" ;
Fig.5 Avtorizasiya ilə SMTP vasitəsilə e-poçt göndərmək üçün skript
Gördüyünüz kimi, e-poçt mesajının göndərilməsi ilə birbaşa əlaqəli olan, lazımi üsulların və xüsusiyyətlərin göstərildiyi bütün sətirlər şərhlərlə müşayiət olunur. Buna görə də özümüzü təkrarlamağın mənası yoxdur, lakin biz onlardan yalnız bəziləri üzərində dayana bilərik ki, bu da həqiqətən əlavə izahat tələb edir, yəni:
1. Məktubun üçüncü tərəfin poçt xidmətindən göndərilməsi səbəbindən burada konkret SMTP serverinə uyğun parametrlər tətbiq edilir. Bu halda, Yandex.Mail serverinin istifadəsi üçün aşağıdakı mülkiyyət dəyərləri tətbiq olunur:
- Əmlak Ev sahibi(pos.28) - smtp.yandex.ru dəyəri olan poçt serverinin ünvanı;
- Əmlak SMTPSecure
- Əmlak Liman
Bu əmlak dəyərləri aşağıdakı ekran görüntüsündə göstərilən Yandex.Help səhifəsindən götürülüb.
Amma bu cür məlumatları başqa mənbələrdən də əldə etmək olar. Bunu etmək üçün axtarış sisteminə müvafiq sorğu daxil edin, məsələn: “Yandex smtp server”. Bu məsələ ilə bağlı çoxlu sayda istinadları haradan tapa bilərsiniz.
Eyni şəkildə, parametrlərin dəyərləri digər SMTP serverlərindən əldə edilə bilər. Aşağıda Mail.ru poçt xidmətinin SMTP serverinin parametrlərini əks etdirən Mail.ru Yardım səhifəsinin ekran görüntüsü verilmişdir.
Beləliklə, Mail.ru-dan üçüncü tərəf SMTP serveri kimi istifadə edildikdə, PHPMailer sinifinin xüsusiyyətlərinin aşağıdakı dəyərləri tətbiq edilməlidir:
- Əmlak Ev sahibi(pos.28) - Poçt server ünvanı (smtp.mail.ru);
- Əmlak SMTPSecure(pos.32) - Şifrələmə protokolu (ssl);
- Əmlak Liman(pos. 33) - SMTP server portu (465).
Oxşar yanaşma digər e-poçt xidmətlərinə də tətbiq edilməlidir.
2. Mülkiyyətdə İstifadəçi adı(pos. 30) domen poçt qutusunun tam ünvanını göstərmək lazımdır. Bu halda, " [email protected]".
Bununla belə, məktublar göndərmək üçün domen poçt hesabından başqa bir hesabdan, lakin birbaşa poçt xidməti ilə əlaqəli bir ünvandan istifadə edirsinizsə, məsələn " [email protected]", onda giriş ünvanı yalnız "@" işarəsinə qədər olan hissəsi olmalıdır. Bu halda, giriş "geri əlaqə" dəyərinə sahib olacaq.
3. PHPMailer mülkiyyət təmin edir SMTPDebug(pos. 50), bu da brauzer ekranında müxtəlif səviyyəli səhvləri göstərməyə imkan verir. Bu xüsusiyyət skriptdə sazlama zamanı problemlərin tapılmasını xeyli asanlaşdırır.
Tipik olaraq, normal rejimdə, dəyər 0-a təyin edildikdə, ətraflı səhv məlumatının çıxışı dayandırılır. Lakin poçtun göndərilməsi və ya sazlama zamanı problemlər yaranarsa, səhv haqqında daha mənalı məlumatları göstərmək üçün digər dəyərlərdən istifadə etmək mümkündür.
Bunun praktikada necə göründüyünü görmək üçün müvəqqəti olaraq parametrlərə bəzi səhvlər daxil edək. Məsələn, domen poçt parolunda (mülk parol, pos.31). Həm də müvəqqəti olaraq əmlakda müəyyən edilmiş səhv haqqında ətraflı məlumatı göstərmək üçün SMTPDebug(pos.50) dəyər 1. Hər şey düzəldildikdən və yoxlanıldıqdan sonra 1-i 0 ilə əvəz edərək SMTP sazlama rejimini söndürəcəyik.
Skriptin son hissəsində bütün lazımi xüsusiyyətlər və üsullar göstərildikdən sonra məktubu göndərmək üçün metoddan istifadə olunur. göndər()) (51-ci mövqe). Və əgər məktub göndərilirsə və üsul göndər() obyekt üçün $mail doğru qaytarır, sonra dəyişən vasitəsilə brauzer dialoqunda $ xəbərdarlıq Uğurlu poçt göndərilməsi haqqında mesaj göstəriləcək (pos. 52).
Əgər nədənsə poçt göndərilə bilmirsə və müvafiq olaraq metod doğrunu qaytara bilmirsə, bu vəziyyət müvafiq xəta mesajı ilə müşayiət olunacaq (pos. 55).
E-poçt göndərilməsi yoxlanılır
Məktub göndərmək üçün skript yaratdıqdan sonra, təbii ki, “yaradıcılığımızın” nəticəsinə baxmalıyıq. Biz burada hər şeyi nəzərə almışıq və heç bir səhv etməmişikmi?
Bunu etmək üçün, nəzərdə tutulduğu kimi, rəy formasından istifadəçidən sayt administratoruna mesaj göndərməyə çalışaq. Aşağıda geribildirim formasının təqdim edilməmişdən əvvəl doldurulmuş sahələrin ekran görüntüsü verilmişdir.
Və burada formanı təqdim etməyin nəticəsidir.
Brauzerin informasiya qutusundakı mesajdan aydın olur ki, SMTP bağlantısı ilə bağlı problem səbəbindən məktubu göndərmək mümkün deyil.
Lakin, indidən bəri əmlak SMTPDebug(pos. 50) 1 qiyməti verilir, onda biz baş vermiş xəta haqqında ətraflı məlumatı görə və onun baş vermə səbəbini öyrənə bilərik.
Aşağıdakı skrinshot göstərir ki, qoşulmağa çalışarkən identifikasiya xətası aşkar edilib, yəni səhv giriş və ya paroldan istifadə edilib.
Parol uyğunsuzluğunu aradan qaldırdıqdan sonra (əvvəllər xəta haqqında əlavə məlumatın çıxışını yoxlamaq üçün səhv parol istifadə edilmişdir), biz məktubu yenidən göndərməyə çalışacağıq.
Bu dəfə hər şey yaxşı getdi və poçtun uğurla göndərildiyi barədə mesaj aldıq. Göründüyü kimi, domen poçt parolunda qəsdən tətbiq edilən müvəqqəti xətadan başqa, biz başqa səhvlərə yol verməmişik.
Ancaq məktubun həqiqətən ünvana çatdırıldığından əmin olmaq üçün ünvanı olan poçtu daxil edək. [email protected] və nəticəyə baxın.
Gördüyünüz kimi, ünvandan məktub [email protected], oradan "Əlaqə" adlı e-poçt mesajı göndərdiyimiz sayt administratoruna uğurla çatdı. Eyni zamanda, məktubun əsas hissəsi rəy formasından alınan məlumatlardan istifadə edərək skriptdə yaratdığımız bütün məzmunu ehtiva edir, yəni:
- Göndərənin adı: Nikolay;
- Göndərənin ünvanı: [email protected];
- Mesajın mövzusu: Poçt göndərilməsi yoxlanılır;
- Mesaj məzmunu: Test mesajı.
İndi, poçt göndərilməsini uğurla yoxladıqdan sonra, mülkiyyət təyin edərək SMTP sazlama rejimini söndürə bilərsiniz. SMTPDebug(pos.50) dəyəri 0.
Beləliklə, üçüncü tərəfin poçt serverindən istifadə edərək icazə ilə SMTP vasitəsilə poçt göndərmək üçün alət yaratmaq tapşırığını tamamladıq.
Məsələn, növbəti məqalədə qeydiyyatdan keçmiş istifadəçi hesabı məlumatlarını bərpa etmək üçün təsdiq e-poçtlarının necə göndərilməsinə baxacağıq.
Sayt mənbə faylları
Bu məqalədə edilmiş yeniləmələrlə saytın mənbə faylları əlavə edilmiş əlavə materiallardan yüklənə bilər:
- www kataloq faylları
- MySQL verilənlər bazası cədvəlləri
Yerli serverdən SMTP vasitəsilə poçt göndərilməsi sizə yerli maşında və ya daha sadə desək, yerli serverdə yerləşən saytdan mesajların göndərilməsini sınamağa imkan verir. Bunun üçün Yandex, Google və ya mail.ru istənilən poçt xidmətindən istifadə edə bilərsiniz.
Əvvəla, SMTP (Simple Mail Transfer Protocol) TCP/IP şəbəkələri üzərindən e-poçtların ötürülməsi üçün nəzərdə tutulmuş geniş istifadə olunan şəbəkə protokoludur. Və bütün məşhur e-poçt xidmətlərində belə protokollar var.
Yerli serverlərin meydana çıxması ilə fərdi skriptlərin və ya cms sistemlərinin işini yoxlamaq üçün hosting provayderi seçməyə artıq ehtiyac yox idi, bunun üçün daha az ödəniş. Hər şeyi kompüterdə sınamaq daha asandır və sonra siz “etdiyinizi” hər kəsə göstərə bilərsiniz.
Bu serverlərin çoxunda artıq quraşdırılmış proqram təminatı və poçtla işləmək üçün lazımi funksionallıq var, sadəcə olaraq onu düzgün konfiqurasiya etməlisiniz.
Belə poçtun funksionallığını yoxlamaq üçün minimum tələb olunur:
- Openserver-dən yerli server kimi istifadə edə bilərsiniz.
- Və sadə bir skript, şablonu aşağıda tapa bilərsiniz.
- İstənilən poçt serverindən istifadə edə bilərsiniz.
SMTP skript quraşdırması vasitəsilə php poçtunun göndərilməsi
Aşağıda kopyalana bilən və ya yüzlərlə oxşar saytdan endirilə bilən sadə skript şablonu redaktə edilməlidir.
Əvvəlcə skript şablonunda bəzi dəyərləri dəyişdirməlisiniz.
üçün
— poçt mesajının göndəriləcəyi poçt ünvanını dəyişdirin.
mövzu
- məktub mövzusu
mesaj
— mesajın özü və ya məktubun mətni.
Skriptimin nümunəsi:
Siz, əlbəttə ki, funksionallığı bir az genişləndirə və skriptin poçt göndərilməsi ilə bağlı mesaj göstərməsini təmin edə bilərsiniz. Baxmayaraq ki, əslində göndərməni edən SMTP serveridir və skript yalnız mesajı yaradır.
Məsələn, bunu yaza bilərsiniz:
Bütün əvəz edilmiş dəyərlər dırnaq içərisində olmalıdır, əks halda skript xəta verəcək. Bundan sonra skripti yerli server qovluğunda saxlaya bilərsiniz.
Misal üçün: domains/send/index.php və SMTP opensrerver vasitəsilə poçt göndərilməsini qurmağa başlayın.
![](https://i0.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_7.png)
Poçt skriptdə dəyərin əvəzinə göstərilən istənilən ünvana gələcək 'to'
, lakin bu poçt açıq server parametrlərində göstəriləcək tam olaraq SMTP tərəfindən işlənəcək və göndəriləcək.
- Server işə salınır
- Açıq server modulunu "poçt" menyusunda parametrlərlə açın
- Şəkildə göstərildiyi kimi bütün sahələri doldururuq, eyni zamanda həqiqi Yandex poçt qutusundan istifadəçi adını, göndərənin e-poçtunu və şifrəsini əvəz edirik.
![](https://i2.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_1.png)
Parametrləri saxlayırıq və server yenidən işə salındıqdan sonra skriptin özünə daxil ola bilərsiniz. “Mənim saytlarım” qovluğundan əvvəllər saxlanmış index.php skriptinin yerləşdiyi “göndər” qovluğunu açın.
![](https://i2.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_4.png)
Bu skriptə daxil olan kimi yeni brauzer pəncərəsində skriptin tamamlandığını göstərən məlumatlar görünəcək.
![](https://i0.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_5.png)
Bundan sonra, məktubun gəlib-gəlmədiyini görmək üçün ünvanı skriptdə göstərilən poçt qutunuzu yoxlamaq lazımdır.
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_6.png)
Əgər orada deyilsə, bu o deməkdir ki, bir şey düzgün konfiqurasiya olunmayıb və ya məktub spam qovluğuna düşüb.
Bütün digər parametrlər oxşar görünür, lakin hər halda, əlavə məlumat zərər verməyəcək.
SMTP mail ru vasitəsilə poçt göndərilməsini qurmaq üçün sadəcə olaraq Yandex parametrlərini mail ru parametrləri ilə əvəz etməlisiniz.
Yerli serveri hər dəfə yenidən qurmamaq üçün müxtəlif openserver profillərini konfiqurasiya etmək yaxşıdır. Bunu necə etmək olar, video dərslikdə göstərilir.
Bu halda, sadəcə olaraq profili yükləmək kifayət olacaq və bu profil üçün göstərilən bütün parametrlər serveri yenidən işə saldıqdan sonra mövcud olacaq. Bu çox rahat bir şeydir və çox sadə işləyir.
Hər bir profil üçün (nə adlandırılacağının heç bir əhəmiyyəti yoxdur), əlbəttə ki, müxtəlif parametrləri olan skriptlərdən, cms sistemlərindən və tətbiqlərdən istifadə etməyi planlaşdırmasanız, öz parametrləri edilməlidir.
Yoxdursa, standart parametrlərlə başa düşə bilərsiniz.
SMTP mail ru-a gəldikdə, burada hər şey eynidir.
Yandex məlumatları mail ru məlumatlarına dəyişdirilir
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_2.png)
smtp google vasitəsilə məktubların göndərilməsi
Google SMTP vasitəsilə məktubların göndərilməsini qurmaq üçün bir az səy tələb olunur.
Birincisi, Google-da profil yaratmaq digər Yandex və mail ru sistemlərinə nisbətən daha çətindir
İkincisi, giriş məlumatınızı təqdim etsəniz belə, sistem sadəcə məktubun keçməsinə icazə verməyəcək. Başlamaq üçün o, əlavə təlimatlar haqqında bütün lazımi məlumatları ehtiva edən bir məktub göndərəcək.
Əks halda Google üçün tam olaraq eyni şəkildə konfiqurasiya edilmişdir. Yalnız bütün məlumatlar dəyişir.
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_3.png)
Digər SMTP vasitəsilə poçt göndərilməsini konfiqurasiya etmək üçün bütün məlumatlar təxminən eyni olacaq.
Hər şey sizin üçün işlədisə və məktublar göstərilən ünvana çatdısa, hər şey düzgün aparıldı. Təcrübələrinizi şərhlərdə bölüşsəniz çox yaxşı olardı.
Müəyyən bir veb-saytın səmərəli və məhsuldar işləmək imkanı əldə etməsi üçün onun yaradılmasına mümkün qədər məsuliyyətli və diqqətlə yanaşmaq lazımdır. Onlayn mağaza yaratmaq üçün istifadə ediləcək sistemin seçimi xüsusi diqqətə layiqdir. Fakt budur ki, malların və ya xidmətlərin satışı üzrə ixtisaslaşan kommersiya platforması bütün lazımi funksiyaların həyata keçirilməsinə imkan verməli və həm saytların saxlanması və doldurulması ilə məşğul olan inzibatçılar, həm də onlayn mağazaların müştəriləri üçün istifadəsi asan olmalıdır. Özləri üçün uyğun CMS seçmək sualı ilə qarşılaşan bir çox insan və şirkət Magento və ya OkayCMS-i seçib-seçməməyi təhlil edir. Bu veb-sayt motorlarının xüsusiyyətlərini və imkanlarını müqayisə edək.
Öz veb saytınızda işləyərkən bir şəxs və ya şirkət çox səy göstərməli olacaq - yalnız bu halda müsbət nəticələrə və həqiqətən təsirli bir vasitə əldə edə bilərsiniz. Veb sayt yaratmağa başlamazdan əvvəl həll edilməli olan əsas suallardan biri ən uyğun CMS seçiminə necə qərar vermək olacaq. Sonra iki CMS-i müqayisə edəcəyik: Joomla və ya OkayCMS və onların hər birinin xüsusiyyətlərinə diqqət yetirəcəyik.
Öz veb-saytınızın olması effektiv, uğurla fəaliyyət göstərən biznes üçün əsas tələblərdən biridir. Statistikalar internet vasitəsilə müxtəlif malların alışlarının və xidmət sifarişlərinin sayının artdığını açıq şəkildə göstərir. Bunu nəzərə alaraq, əksər kommersiya şirkətləri artıq öz internet saytının olmasının vacibliyini bilirlər. Bununla belə, İnternet resursunun olması faktı onun effektivliyinə, gəlirliliyinə və gözlənilən biznes faydalarına inanmaq üçün kifayət deyil.
Öz veb saytınızı yaratmağa və ya onlayn mağaza açmağa hazırlaşarkən, bir çox məsələləri nəzərə almaq və təhlil etmək, həmçinin müxtəlif problemləri həll etmək lazımdır. Yalnız bu halda layihənizin müsbət nəticələr verəcəyinə və gözləntilərinizi tam şəkildə qarşılaya biləcəyinə arxalana bilərsiniz. Onlayn mağazanın inkişafı ilə bağlı müxtəlif məsələlər arasında CMS seçmək məsələsi xüsusi diqqətə layiqdir. Özünüz üçün optimal mühərrik haqqında qərar verməyinizi asanlaşdırmaq üçün
Gələcək onlayn mağaza üçün öz veb saytını yaratmağı planlaşdırarkən, kifayət qədər çox sayda insan və hətta satış üzrə ixtisaslaşmış şirkətlər çətin və son dərəcə vacib seçimlə üzləşirlər: mövcud CMS-lərdən hansını seçmək. Nə seçəcəyinizi düşünürsünüzsə: PrestaShop və ya OkayCMS, bu məqaləni oxumağı təklif edirik, burada İnternet saytları yaratmaq üçün bu iki sistemi müqayisə edəcəyik, xüsusən də onlayn mağazalar.
Virtual Windows hostinq serverlərindən anonim mesajların göndərilməsi qadağan olunduğu üçün məktubların göndərilməsi SMTP serveri vasitəsilə həyata keçirilməlidir ki, bunun üçün bizim poçt sistemimizdən də istifadə etmək mümkündür.
PHP istifadə edərək e-poçtları necə göndərmək olar?
smtp serverində avtorizasiyanı dəstəkləyən hər hansı PHP sinifindən istifadə. Məsələn, siz PHPMailer sinif dəstindən istifadə edə bilərsiniz.
Siz həmçinin icazə tələb edən smtp serverindən istifadə edərək məktubların göndərilməsini həyata keçirən nümunəmizdən istifadə edə bilərsiniz. Buna görə də, skriptə müvafiq giriş təfərrüatlarını əlavə etməyi unutmayın, məsələn:
// Əgər SMTP sessiya jurnalını göstərmək lazımdırsa, aşağıdakı sətri şərhdən çıxara bilərsiniz. // $_SERVER["debug"] = true; funksiya MailSmtp ($reciever, $mövzu, $məzmun, $başlıqlar, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP server ünvanı$smtp_port = 25 ; // SMTP server portu$smtp_user = " [email protected]"
;
// SMTP serverində avtorizasiya üçün istifadəçi adı$smtp_password = "pAsSwORD" ; // SMTP serverində avtorizasiya üçün parol$mail_from = " [email protected]"
;
// Məktubun göndərildiyi poçt qutusu$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sock, 512); if (! $sock ) ( printf ( "Soket yaradılmayıb\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "AUTH LOGIN"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock , "MAIL FROM:<"
.
$mail_from
.
">" ); smtp_msg ($sock , "RCPT TO:<"
.
$reciever
.
">" ); smtp_msg ($sock , "DATA" ); $headers = "Mövzu: " . $mövzu . "\r\n" . $başlıqlar; $data = $başlıqlar. "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock, $data ); smtp_msg ($sock, "QUIT" ); fclose ($sock ); ) funksiyası smtp_msg ($sock, $msg ) ( əgər ( ! $sock ) ( printf ("Sınıq rozetka!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Bizdən göndərin" : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Soketdir" down\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Serverdən əldə olunub: %s"
" , nl2br (htmlspecialchars ($str )); ) $e = partlatmaq (" " , $str ); $code = array_shift ($e ); $str = implode ( " " , $e ); if ($code > 499 ) ( printf ( "SMTP söhbəti ilə bağlı problemlər.
Kod %d.
Mesaj %s
"
, $kod, $str); çıxış(1); ))) ?>
MailSmtp() funksiyası ilə hazır skript nümunəsini yükləyin: smtpauth.php.sample
Siz mail() funksiyasını birbaşa əvəz etmək üçün yuxarıda təsvir olunan MailSmtp() funksiyasından istifadə edə bilərsiniz; PHP-də ən sadə forma nümunəsini nəzərdən keçirin:
// Mesaj başlıqları, onlar mesaj kodlamasını, Kimdən, Kimə sahələrini və s.$headers = "MIME-versiya: 1.0\r\n" ; $başlıqlar.= "Məzmun növü: mətn/html; charset=windows-1251\r\n"; $headers .= "Kimə: $to \r\n" ; $başlıqlar.= "Kimdən: Göndərənin adı "
;
// poçt ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
Bu formanın mail() funksiyası olmadan işləməsi üçün biz require_once vasitəsilə smtpauth.php faylını daxil etdik və orada təsvir olunan MailSmtp() funksiyasını mail()-ə oxşar arqumentlərlə çağırdıq. Eyni zamanda, skriptin icrası zamanı xətaların qarşısını almaq üçün kodda mail() çağırışını şərh etdik.
ASP.NET istifadə edərək e-poçtları necə göndərmək olar?
Əgər siz 2.0 versiyasından istifadə edirsinizsə, MailMessage sinfindən istifadə edirsiniz System.Net.Mail), yaxşı təsvir edilmişdir.
Aşağıda onun C# və VisualBasic dilləri üçün istifadəsinə dair nümunələr verilmişdir:
C# dili üçün nümunə:
<% @Page Language="c#" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
MailMessage message = new MailMessage(); // yeni məktub yaratmaq mesaj.Əlavə et(" [email protected]"); // alıcı ünvanının əlavə edilməsi message.From = yeni Poçt ünvanı("from@ domain.tld", "Göndərən adı"); // göndərənin adını və ünvanını göstərərək message.Subject = "Mesajın mövzusu"; // məktubun mövzusunu təyin etməklə message.BodyEncoding = System.Text.Encoding.UTF8; // hərf kodlamasını təyin etmək message.IsBodyHtml = false; // hərf formatının təyin edilməsi (doğru - HTML, yalan - HTML deyil) message.Body = "Mesaj mətni"; // məktubun mətninin (gövdəsinin) dəqiqləşdirilməsi SmtpClient müştəri = yeni SmtpClient("smtp.site",25); // "smtp.site" serverinə yeni bağlantı yaratmaq client.DeliveryMethod = SmtpDeliveryMethod.Network; // mesajların göndərilməsi üsulunu müəyyən edir client.EnableSsl = false; // serverə təhlükəsiz bağlantıdan istifadə ehtiyacını aradan qaldırır client.UseDefaultCredentials = false; // standart avtorizasiya detallarının istifadəsini söndürün client.Credentials = yeni NetworkCredential("postmaster@" domain.tld", "***parol***"); // SMTP serverində avtorizasiya üçün lazımi detalların (istifadəçi adı və şifrə) müəyyən edilməsi müştəri.Göndər(mesaj); // mesaj göndər
%>
Bu metodun istifadəsini nümayiş etdirən bitmiş forma nümunəsini yükləyin: MailForm.aspx.
VisualBasic dili üçün nümunə:
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
Dim smtpMssg AS new MailMessage
smtpMssg.From = New MailAddress ("admin@domain.tld", "Göndərən_adı") smtpMssg.To.Add (" [email protected]") " alıcı ünvanının əlavə edilməsi smtpMssg.Subject = "E-poçt mövzusu" "məktubun mövzusunun göstərilməsi smtpMssg.Body = "Mesaj mətni" " məktubun mətninin (gövdəsinin) göstəricisi smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " hərf kodlaşdırmasının göstəricisi smtpMssg.IsBodyHtml = false " hərf formatının göstəricisi (doğru - HTML, yalan - HTML deyil) SmtpMail-i Yeni SmtpClient kimi azaldın("smtp.site", 25) "SmtpClient" tipli yeni obyektin elanı SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "məktubun çatdırılma üsulunun göstəricisi SmtpMail.UseDefaultCredentials = Yanlış "standart olaraq avtorizasiya etimadnamələrinin istifadəsini deaktiv etmək" SmtpMail.EnableSsl = Yanlış " serverə təhlükəsiz bağlantıdan istifadə ehtiyacını aradan qaldırır SmtpMail.Credentials = yeni NetworkCredential("postmaster@ domain.tld", "***parol***") "SMTP serverində avtorizasiya üçün lazım olan təfərrüatları (istifadəçi adı və şifrə) göstərməklə SmtpMail.Send(smtpMssg) " mesaj göndərmək
%>
Köhnəlmiş (və köhnəlmiş) SmtpMail sinfi də var (ad boşluğundan istifadə etməklə System.Web.Mail). Aşağıda onun VisualBasic dili üçün istifadəsinə bir nümunə verilmişdir:
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Web" %>
<% @Import Namespace="System.Web.Mail" %>
<%
Dim smtpMssg = new MailMessage "MailMessage" tipli yeni obyektin elanı smtpMssg.From = "Göndərən_adı domain.tld>" “Göndərənin adının və ünvanının göstərilməsi smtpMssg.To = "admin@ domain.tld" " alıcının ünvanının göstərilməsi smtpMssg.BodyFormat = MailFormat.Text " hərf formatının göstəricisi smtpMssg.BodyEncoding = Encoding.UTF8 "hərf kodlamasını göstərir smtpMssg.Subject = "E-poçt mövzusu" "məktubun mövzusunun göstərilməsi smtpMssg.Body = "Mesaj mətni" " məktubun mətninin göstəricisi smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "serverdə SMTP avtorizasiyasına ehtiyac olduğunu göstərir smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domain.tld") " avtorizasiya üçün istifadəçi adı smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***parol***") " avtorizasiya üçün parol SmtpMail.SmtpServer = "smtp.site" " SMTP server ünvanını təyin etməklə SmtpMail.Send(smtpMssg) " mesaj göndərmək
%>
ASP istifadə edərək e-poçtları necə göndərmək olar?
Nəzərə alın ki, smtp serverimizdən istifadə edərkən avtorizasiya tələb olunur, ona görə də skriptə müvafiq giriş təfərrüatlarını əlavə etməyi unutmayın, məsələn:
<%
iConfig = Server.CreateObject("CDO.Configuration")
Set iConfig = Server.CreateObject("CDO.Configuration")
With iConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "postmaster@domain.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "parol" .Sonunu yeniləyin cdoMessage Seti ilə = CreateObject("CDO.Message") cdoMessage Seti ilə .Konfiqurasiya = iConfig .From = "İstifadəçini sınayın domain.tld>" .To = "İstifadəçi " .Subject = "Salam, İstifadəçi" .TextBody = "Mən bu mesajı ASP skriptindən yazıram." .Send Sonunu Set cdoMessage = Heç bir şey təyin etmədi iConfig = Heç bir şey %>
Bəzi CMS-lərdə artıq yazışmaların və ya müvafiq modulların göndərilməsi üçün quraşdırılmış alətlər var, gəlin ən populyarlarına baxaq.
Wordpress
Bu CMS üçün "WP Mail SMTP" xüsusi modulu var, onun konfiqurasiya nümunəsi modul səhifəsində təsvir edilmişdir.
Nümunədəki təsvirə diqqət yetirin, poçt sistemimizdə 25 nömrəli portdan istifadə etmək lazımdır və SSL şifrələmə tələb olunmur.
Joomla
İdarəetmə panelində "Ümumi Parametrlər" bölməsinə keçin, "Server" sekmesini seçin. "Poçt" sahəsində "SMTP serveri" kimi göndərmə üsulunu seçməlisiniz, "SMTP server ünvanı" və "SMTP girişi" və "SMTP parolu" sahələrində poçt sisteminin müvafiq təfərrüatlarını göstərin, məsələn: smtp.site, qutu@domeniniz və müvafiq parol.
Drupal
Bu CMS həmçinin SMTP serveri ilə işləmək üçün öz moduluna malikdir PHPMailer. Siz bu modulu CMS Drupal saytında öz səhifəsində yükləyə bilərsiniz; modulun quraşdırılması təsviri onunla birlikdə arxivdə mövcuddur.
NetCat
Bu CMS-də SMTP serveri ilə işləmək üçün daxili funksiyalar yoxdur. Sayt skriptlərindən istifadə edərək poçt göndərmək üçün həllimizdən istifadə etməyi təklif edə bilərik; ona qoşulmaq üçün aşağıdakı addımları yerinə yetirməlisiniz:
domain.tld domen adınızla əvəz edilməlidir.
Təklif olunan həll poçt göndərmək üçün bu CMS-in standart funksiyalarından istifadə edən bütün NetCat modulları ilə işləyir.