Smtp icazə kodu. E-poçtların göndərilməsi (SMTP və PHP poçtu). ASP istifadə edərək e-poçtları necə göndərmək olar
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ıÜçün bu forma mail() funksiyası olmadan işləmişik, biz require_once vasitəsilə smtpauth.php faylını daxil etdik və orada təsvir edilən MailSmtp() funksiyasını çağırdıq, arqumentləri mail() kimi. 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 %>İstifadəsini nümayiş etdirən doldurulmuş formanın nümunəsini yükləyin bu üsul: 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ı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ınBə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 məktub göndərmək üçün həllimizdən istifadə etməyi təklif edə bilərik; onu birləşdirmək üçün aşağıdakı addımları yerinə yetirməlisiniz:
- Veb saytımızdan lazımi faylları olan arxivi yükləyin ( send_auth_mail.php Və mail.inc.php) və onu kompüterinizdə paketdən çıxarın;
Faylı redaktə edin send_auth_mail.php Arxivdən istədiyiniz SMTP serverinə qoşulma təfərrüatlarını göstərərək:
- $mail_smtpServer = "smtp.site"; (SMTP server ünvanı)
- $mail_port = "25" ; (bağlantı portu)
- $mail_username = "[email protected]" ; (SMTP serverində avtorizasiya üçün istifadəçi adı)
- $mail_password = "Parol"; (SMTP serverində avtorizasiya üçün parol)
- Faylın ehtiyat nüsxəsini yaradın domain.tld/www/netcat/admin/mail.inc.php;
- faylları yükləyin send_auth_mail.php Və mail.inc.php kataloqdakı virtual sayta domain.tld/www/netcat/admin/
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.
Uzun müddətdir ki, istifadəçilərə məktubların PHP-də mail() funksiyası vasitəsilə deyil, SMTP poçt serverləri vasitəsilə göndərilməsinin həllini axtarırdım. İnternetdə çox müxtəlif məlumatlar yoxdur və orada olanlar tamamilə düzgün işləmir və ya ümumiyyətlə işləmir. Buna görə də hər şeyi bir yerə yığdım və saytlarda təqdim olunan hazır kodlara əsaslanaraq öz kodumu yazdım.
Niyə mail() yox SMTP vasitəsilə göndərin
Cavabım olduqca sadədir - bir müddətdir ki, viruslar serverim vasitəsilə tonlarla məktublar göndərirdi ki, bu da mənim IP ünvanımın bir çox poçt göndəriciləri, xüsusən də gmail.com tərəfindən BAN edilməsinə səbəb oldu və bununla əlaqədar istifadəçilər məktublar ala bilirdilər, ona görə də mən alternativ axtarmalı oldum və mən onu tapdım - bu SMTP-dir
Sizə maraqlı ola bilər ki, mənim ssenarim niyə açıq havada olan başqalarından daha yaxşıdır?! cavab verəcəyəm
- Yandex, Rambler, Mail ilə işləyir (gmail qazana bilmədi)
- Kodu təmizləyin. Onu konfiqurasiya etmək üçün bir neçə sətri dəyişmək kifayətdir
- HTML formatında e-poçt göndərir
İnternetdə heç bir yerdə tapmadığım, lakin hər birindən lazım olan hər şeyi götürdüyüm skriptimin üstünlükləri bunlardır. Beləliklə, kodu nəzərdən keçirək.
Funksiya smtpmail($mail_to, $subject, $message, $service="yandex") ( $config["smtp_charset"] = "windows-1251"; //mesajın kodlaşdırılması. (və ya UTF-8 və s.) $config [ "smtp_from"] = "mashintop.ru"; //Sizin adınız - və ya saytınızın adı. "Kimdən" sahəsində oxunduqda göstəriləcək $config["smtp_debug"] = false; //İstəsəniz xəta mesajlarını görmək üçün false əvəzinə doğru təyin edin $config["smtp_port"] = "25"; // İş portu. Əmin deyilsinizsə dəyişməyin. if($service=="yandex") ( $config[ "smtp_searcher"] = "yandex. ru"; $config["smtp_email"] = " [email protected]"; $config["smtp_username"] = "mashintop"; //Poçt qutunuzun adını dəyişin. $config["smtp_host"] = "smtp.yandex.ru"; //poçt göndərmək üçün server $config[" smtp_password "] = "moi_parol"; //Şifrəni dəyişdirin ) elseif($service=="rambler") ( $config["smtp_searcher"] = "rambler.ru"; $config["smtp_email"] = " [email protected]"; $config["smtp_username"] = "mashintop"; //Poçt qutunuzun adını dəyişin. $config["smtp_host"] = "smtp.rambler.ru"; //poçt göndərmək üçün server $config[" smtp_password "] = "moi_parol"; //Şifrəni dəyişdirin ) elseif($service=="mail") ( $config["smtp_searcher"] = "mail.ru"; $config["smtp_email"] = " [email protected]"; $config["smtp_username"] = "mashintop"; //Poçt qutunuzun adını dəyişin. $config["smtp_host"] = "smtp.mail.ru"; //poçt göndərmək üçün server $config[" smtp_password "] = "moi_parol"; //Şifrəni dəyiş ) elseif($service=="gmail") ( $config["smtp_searcher"] = "gmail.com"; $config["smtp_email"] = " [email protected]"; $config["smtp_username"] = "alexeybertram"; //Poçt qutunuzun adını dəyişin. $config["smtp_host"] = "smtp.gmail.com"; //poçt göndərmək üçün server $config[" smtp_password "] = "moi_parol"; //Şifrəni dəyiş ) $header="Tarix: ".date("D, j M Y G:i:s")." +0700rn"; $header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$config[" smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X-Mailer: Yarasa! (v3.99.3) Professionalrn"; $header.="Cavab verin: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(" ".$config["smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X-Prioritet: 3 (Normal)rn"; $header.="Message ID:<172562218.".date("YmjHis")."@".$config["smtp_searcher"].">rn"; $header.="Kimə: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("")))."? =<$mail_to>rn"; $header.="Mövzu: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$subject."" )))."?=rn"; $header.="MIME-versiya: 1.0rn"; $header.="Məzmun növü: mətn/html; charset=windows-1251rn"; $header.="Məzmun-transfer-kodlaşdırma: 8bitrn"; $smtp_conn = fsockopen("".$config["smtp_host"]."", $config["smtp_port"],$errno , $errstr, 10); if(!$smtp_conn) ("serverlərlə əlaqə uğursuz oldu"nu çap edin; fclose($smtp_conn); exit;) $data = get_data($smtp_conn); fputs($smtp_conn,"EHLO ". $ config["smtp_searcher"]."rn"); $code = substr(get_data($smtp_conn),0.3000); if($code != 250) ("EHLO salam xətası"nı çap edin; fclose($smtp_conn) ; exit; ) fputs($smtp_conn,"AUTH LOGINrn"); $code = substr(get_data($smtp_conn),0.3000); if($code != 334) ("server avtorizasiyanın başlamasına icazə vermədi" çap edin; fclose ($ smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_username"]."")."rn"); $code = substr(get_data($smtp_conn),0,3000); əgər ($code != 334) ("bu istifadəçiyə daxil olma xətası" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_password"].""). "rn" ); $code = substr(get_data($smtp_conn),0,3000); if($code != 235) ("yanlış parol" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,"MAIL FROM:".$config["smtp_email"]."rn"); $kod = substr(get_data($smtp_conn),0.3000); if($code != 250) ("server MAIL FROM əmrindən imtina etdi" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,"RCPT TO:".$mail_to."rn"); $kod = substr(get_data($smtp_conn),0.3000); if($code != 250 AND $code != 251) ("Server RCPT TO əmrini qəbul etmədi" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,"DATArn"); $kod = substr(get_data($smtp_conn),0.3000); if($code != 354) ("server DATA qəbul etmədi" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,$header."rn".$message."rn.rn"); $kod = substr(get_data($smtp_conn),0.3000); if($code != 250) ("məktub göndərərkən xəta" çap edin; fclose($smtp_conn); exit;) fputs($smtp_conn,"QUITrn"); fclose($smtp_conn); ) funksiya get_data($smtp_conn) ( $data=""; while($str = fgets($smtp_conn,515)) ( $data .= $str; if(substr($str,3,1) == " " ) ( fasilə; ) ) $data qaytarın; ) $text_email = "
Siz indicə mashintop.ru saytında elan əlavə etmisiniz. Burada baxa bilərsinizAçarınız: ".$key."
Bu açardan istifadə edərək reklamınızı idarə edə bilərsiniz.
"; $text_email .= " "; smtpmail(" [email protected]", "Mashintop.ru-da reklamın açarı", $text_email, "yandex"); //Yandex smtpmail(" istifadə edin. [email protected]", "Mashintop.ru-da reklamın açarı", $text_email, "mail"); //smtpmail(" e-poçtundan istifadə edin. [email protected]", "Mashintop.ru-da reklamın açarı", $text_email, "rambler"); //rambler smtpmail(" istifadə edin. [email protected]", "Mashintop.ru-da reklamın açarı", $text_email, "gmail"); // lakin gmail işləmir :(
Hamısı budur, hazır skript sizin əlinizdədir, sadəcə onu kopyalayın, $config massivinin dəyərlərini dəyişdirin və hər şey yaxşı işləyəcək.
İndi diqqət yetirmək istədiyim bəzi elementlərə baxaq.
Məsələn, SMTP vasitəsilə Google-a göndərmək istəyərkən aldığımız xəta. Əvvəlcə bu səhv mətnini görürük:
Daha konkret bir şey görmək üçün kodu bir az dəyişdirək
Fputs($smtp_conn,"AUTH LOGINrn"); $kod = substr(get_data($smtp_conn),0.3000); echo $code; if($code != 334) ("server avtorizasiyanın başlamasına icazə vermədi" çap edin; fclose($smtp_conn); exit;)
Və sonda çox konkret bir səhv alırıq
530 5.7.0 Əvvəlcə STARTTLS əmri verilməlidir. x4sm16408296lbn.2 - gsmtp
Bunun nə demək olduğunu dəqiq bilmirəm, amma inanıram ki, bunun təhlükəsiz, təminatsız əlaqə ilə əlaqəsi var. Ondan necə qurtulacağımı hələ bilmirəm, buna görə də gmail hazırda məğlubiyyətsiz olaraq qalır.
2019-08-05
Salam, əziz qonaq!
Bloqu yeniləməkdə gecikdiyimə görə məni bağışlayın. Ancaq bunun tamamilə başa düşülən bir izahı var. Axı, yay, dacha, qonaqlar, meşə, su və daha çox şey idi, bu da veb sayt yaratmaq məsələlərini həll etməyə imkan vermədi. Ancaq indi bir az boşaldım, qonaqlar getdi və düşünürəm ki, indi buna mütləq diqqət yetirə biləcəyəm.
Beləliklə, son məqalədə domenimizin poçtunu poçt xidmətlərindən birinə bağladıqdan sonra, indi saytdan necə e-poçt göndərə biləcəyinizi görək. Üstəlik, məktublarımız SPAM-da qalmasın, lakin etibarlı şəkildə, yüksək ehtimalla, alıcılarımıza çatdırılsın.
Ümumiyyətlə, PHP-də məktubların göndərilməsi üçün daxili mail() funksiyası mövcuddur. Ancaq qeyd etmək lazımdır ki, bu metodun sadəliyinə baxmayaraq (bu halda məktub göndərmək üçün müəyyən parametrlərlə yalnız bir kod sətrini göstərmək kifayətdir), bu seçimin istifadəsi SPAM problemi ilə əlaqəli əhəmiyyətli bir çatışmazlığa malikdir. .
Məsələ burasındadır ki, alıcı tərəfdəki poçt serverlərinin SPAM əleyhinə filtrləri mail() funksiyası vasitəsilə göndərilən məktubları həqiqətən bəyənmir. Və əksər hallarda, bu cür mesajlar ünvana çatana qədər süzülür və ya hətta silinir.
Və bu cür halları mümkün qədər aradan qaldırmaq üçün ümumiyyətlə başqa bir seçim istifadə olunur, məktublar üçüncü tərəfin poçt xidməti tərəfindən edildiyi kimi göndərilir.
Bu üsula avtorizasiya ilə SMTP vasitəsilə poçt göndərilməsi deyilir. Hansı ki, bu gün rəy forması göndərmə nümunəsindən istifadə edərək baxacağıq. Bundan əlavə, bunun üçün kifayət qədər tanınmış və populyar PHPMailer kitabxanasından istifadə edəcəyik ki, bu da SMTP vasitəsilə məktubların göndərilməsini olduqca sadə şəkildə təşkil etməyə imkan verir.
- Əlaqə məktublarını necə göndərəcəyik
- Əlaqə formasının yaradılması
- PHPMailer kitabxanasının quraşdırılması
- SMTP vasitəsilə poçt göndərmək üçün skript yaradırıq
- E-poçt göndərilməsi yoxlanılır
- Sayt mənbə faylları
Əlaqə məktublarını necə göndərəcəyik
Geribildirim məktublarının göndərilməsinin praktiki işinə başlamazdan əvvəl gəlin bunu necə edəcəyimizə qərar verək.
Əlaqə forması istifadəçiyə öz mesajını çatdırmaq üçün sayt administratoru ilə əlaqə saxlamağa imkan vermək üçün nəzərdə tutulub. Tipik olaraq, bu forma bir neçə sahədən və “Göndər” düyməsindən ibarətdir.
Prinsipcə, e-poçt göndərmək üçün istifadəçi və mesajın məzmunu haqqında kifayət qədər məlumat verən yalnız bir neçə sahədən istifadə etmək kifayətdir, məsələn:
- "Ad" - mesajı göndərənin adını daxil etmək üçün;
- "E-poçt" - göndərənin elektron poçt ünvanı üçün;
- "Mesaj mövzusu";
- "Mesaj mətni".
Baxmayaraq ki, başqalarını əlavə edə bilərsiniz. Məsələn, telefon nömrəsi, əgər bu həqiqətən lazımdırsa.
Bizim vəziyyətimizdə bu cür məktublar sayt administratorunun ünvanına domenimizin qoşulduğu poçt xidmətində icazəsi olan real poçt qutusundan göndəriləcək.
Əvvəlki məqalədə biz domen poçtunun Yandex.Mail xidmətinə qoşulmasını yoxlamağa diqqət yetirdiyimiz üçün bu seçim üçün poçt göndərəcəyik. Baxmayaraq ki, bu vacib deyil. Aşağıda siz dəyişdirildikdə Mail.ru poçt serveri vasitəsilə e-poçt göndərməyə imkan verəcək seçimləri görəcəksiniz.
Məktubların göndəriləcəyi həqiqi bir poçt qutusu olaraq, yeni yaradılmış bir domen poçt istifadəçisinin hesabından istifadə edəcəyik, məsələn ünvanı ilə [email protected]. Və bu məktubları administratorun poçt qutusuna göndərəcəyik [email protected], biz əvvəllər əvvəlki məqalədə yaratdıq.
Beləliklə, rəy formasından məktubu göndərən poçt qutusu olacaq [email protected]., və alıcı - [email protected]. Bu halda, məzmunu ilə birlikdə mesajı göndərən istifadəçi haqqında bütün məlumatlar göndərilən məktubun mətnində ötürüləcəkdir.
Əlaqə formasının yaradılması
Məktubların göndərilməsi proseduru barədə qərar qəbul etdikdən sonra indi bunu edəcəyimiz rəy forması yaradacağıq.
Aşağıda bu formanın HTML kodu var, onu "Əlaqə" səhifəsində yerləşdirəcəyik (məqalələr kataloqunda kontakty.php faylı).