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ı " ; // poçt ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
Kimə: Mövzu: Mətn: 
 
 

Üçü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ı 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 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.phpmail.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.phpmail.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

  1. Yandex, Rambler, Mail ilə işləyir (gmail qazana bilmədi)
  2. Kodu təmizləyin. Onu konfiqurasiya etmək üçün bir neçə sətri dəyişmək kifayətdir
  3. 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ərsiniz
Aç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ı).

    "məqalə" >

    Əlaqələr

    Əlaqə

    "əlaqə" hərəkət = "#" üsul = "post" >

    Əlaqə forması

    Bütün suallar, sorğular və biznes təklifləri üçün aşağıdakı rəy formasından istifadə edərək bizimlə əlaqə saxlaya bilərsiniz.

    "Əlaqə bloku" >

    "əlaqə girişi" >

    "mətn" id = "əlaqə adı" adı = "əlaqə adı" başlıq = "Ad rus dilində olmalı və ən azı 3 simvoldan ibarət olmalıdır" nümunə = "{3,}" tələb olunur >

  1. "boş əlaqə" >

    "əlaqə girişi" >

    "e-poçt" id = "əlaqə e-poçtu" adı = "əlaqə e-poçtu" tələb olunur >

  2. "əlaqə-mövzu" >

  3. "əlaqə-şərh" >

  4. "əlaqə düyməsi" >

    "təqdim" adı = "əlaqə düyməsi" dəyər = "Göndər" >

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ə, istədiyiniz forma yaradılı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 üçüncü tərəfin poçt xidmətində icazə ilə SMTP protokolu vasitəsilə e-poçt göndərilməsini əhəmiyyətli dərəcədə sadələşdirəcək.

Onu quraşdırmaq üçün lazımi faylları yükləmək lazımdır. 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 əlavə, bu məqaləni yazarkən saxlanmış ən son 6.0.7 versiyasını ə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ı

    $poçt -> Ünvan əlavə et ($to, "İdarəçi" ); //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ə olunurdu), 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 daxil edilmiş müvəqqəti xətadan başqa, 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

PHP-də məktubların göndərilməsi prosesini avtomatlaşdıran skriptlərdən istifadə etmək kifayət qədər populyardır. Bu yazıda SMTP vasitəsilə alıcılara məktublar göndərən sadə skriptə baxacağıq( Sadə Poçt Transfer Protokolu ). Özümüzü yalnız bu funksionallıqla məhdudlaşdırmaq çox asan olardı; skript əlavələri də dəstəkləyir, yəni məktubunuza pdf, txt və ya doc faylı əlavə edə bilərsiniz.

Skriptin qurulması olduqca sadədir, sizə lazım olan tək şey məktubların göndəriləcəyi e-poçt üçün göndərənin loqini və şifrəsidir.

Skript km_smtp_class.php sinfi ilə işləyir, sinfin yaxşı cəhəti odur ki, o, təhlükəsiz məlumat ötürülməsini təmin edən müxtəlif SSL və TLS protokollarını dəstəkləyir.

Budur skriptin özü:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [email protected]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Alıcının E-poçtu $Receiver = " [email protected]"; // Mesajın mövzusu $Subject = "PHP-dən e-poçt göndərilməsi"; // Mesaj mətni (HTML-də) $Text = "Salam!
Mesaj skriptdən göndərildi Mowshon Vebsayt: http://site"; // Məktubda əlavə - faylın ünvanı $Attachment = ""; /* $mail = yeni KM_Mailer(server, port, istifadəçi, parol, tip); */ /* Növ ola bilər: null, tls və ya ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_server"], $SenderConfig["SMTP_port"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Fayl əlavə edin if($Attachment) ($mail->addAttachment($Attachment);) // Daha çox alıcı əlavə edin $mail->addRecipient( " [email protected]"); $mail->addRecipient(" [email protected]"); /* $mail->göndər(Kimdən, Üçün, Mövzu, Mətn, Mövzu = isteğe bağlıdır) */ $SendMail = $mail->göndər($SenderConfig["SMTP_email"], $Receiver, $Mövzu, $Mətn ); // Qəbul edənlərin siyahısını təmizləyin $mail->clearRecipients(); $mail->clearCC(); $mail->clearBCC(); $mail->clearAttachments(); ) else ( echo "Xəta baş verdi" SMTP serverinə qoşulma"; ) ?>

Skript quraşdırması əsasən $SenderConfig massivinə əsaslanır, burada SMTP:server, port, giriş və e-poçt parolunu təyin etməliyik. Hər bir massiv açarını təsvir edək:

SMTP_server - SMTP server ünvanı (müxtəlif e-poçtlar üçün fərdi ünvan)

Mail.ru poçtu: smtp.mail.ru port: 25, 587 və 465 (SSL şifrələməsi ilə)

Yandex poçtu: smtp.yandex.ru portu: 25, 587 465 (SSL port)

Rambler poçtu: mail.rambler.ru portu: 25, 587 465 (SSL port)

Yahoo poçtu: smtp.mail.yahoo.com SSL portu: 465

(Siyahıda olmayan smtp serverlərinin ünvanına ehtiyacınız varsa, şərhlərdə yazın)

SMTP_port - Biz bunu yuxarıda hər bir smtp serveri üçün təsvir etmişik.

SMTP_email - istifadəçi daha dəqiq olardı, amma aydınlıq üçün e-poçt yazdım, e-poçt ünvanını göstəririk.

SMTP_pass - SMTP_email açarında dəyər kimi göstərilən e-poçt üçün parol


SMTP_type - Defolt NULL. Məktubların göndəriləcəyi protokol. Protokollar: SSL və TLS

Siz sadəcə $Attachment dəyişənində (/var/patch/to/file/File.pdf) faylın tam ünvanını göstərməklə məktuba qoşmalar əlavə edə bilərsiniz.

Hər hansı bir sualınız varsa, onları aşağıdakı şərhlərdə yazın.

PHP poçtu

Bu funksiya defolt olaraq E-poçt göndərmə kimi həyata keçirilir. Bu funksionallıq E-poçtu yönləndirmək üçün üçüncü tərəf serverini tələb etmir. Bu funksiyanın düzgünlüyünü yoxlamaq üçün saytın olduğu qovluqda test.php faylı yaradın və ora aşağıdakı kodu yerləşdirin:

Bunun əvəzinə harada "E-poçtALICI" Məktubun göndəriləcəyi E-poçtu daxil edin.

Bu faylı saytınızın kökünə yerləşdirin.

Sonra, ünvan çubuğuna www.YourDomain/test.php daxil edin. Göstərilən e-poçta məktub alınarsa, hostinqiniz məktub göndərmə funksiyası ilə düzgün işləyir " PHP poçtu". Məktubun spama düşməsi mümkündür, ona görə də onu yoxlamaq lazımdır.

Məktub anlaşılmaz kodlaşdırma ilə gəlibsə, xətti dəyişdirin: "Poçt göndərilməsi yoxlanılır" haqqında "Poçt göndərilməsi yoxlanılır", "Məzmun növü:text/html;charset=utf-8".

Məktubu brauzerinizin ünvan çubuğundan göndərməyi təkrarlayın.

Yuxarıdakı manipulyasiyalardan sonra test məktubu son alıcıya çatmazsa, hosting texniki dəstəyi ilə əlaqə saxlamalısınız.

Bu metodun çatışmazlıqları arasında bu metodun ardıcıl işləmədiyini qeyd etmək lazımdır. Hostinq tərəfində e-poçt göndərilməsində fasilələr ola bilər.

Bu metodun əsas çatışmazlığı ondan ibarətdir ki, müştərilərin e-poçtlarına göndərilən bütün məktublar birbaşa veb saytınızdan göndərildiyi üçün poçt xidmətləri (gmail, mail.ru, yandex.ru) tərəfindən tanınmayacaq.

Gmail poçt xidməti bu məktubları sual işarəsi və imza ilə göstərir: "Gmail sistemi bu məktubun YourDomain domenindən göndərildiyini təsdiq edə bilmədi. Bu, spam ola bilər."

Bu vəziyyətin qarşısını almaq üçün .

SMTP (Simple Mail Transfer Protocol)

SMTP - poçt ötürmə protokolu. Ümumilikdə, bu protokoldan istifadə edərək poçt ötürülməsini qurmaq üçün SMTP serverinin özünə ehtiyacınız var. yandex.ru korporativ (domen) poçtundan SMTP serveri kimi istifadə etmək üçün ən çox yayılmış seçim https://pdd.yandex.ru/-dur.

Hər şeydən əvvəl bu lazımdır hesabı (poçt) yandex, bunun əsasında domeniniz üçün e-poçtlar yaradılacaq: “order@YourDomain” “info@YourDomain”... Əsas hesab heç bir yerdə görünməyəcək və yalnız gələcəkdə onun əsasında domen e-poçtları yaratmaq üçün istifadə olunur.

Şəxsi Yandex hesabınızda avtorizasiyadan sonra https://pdd.yandex.ru/ linkində domen poçtu yaradılır. Bu, istifadəçilərin “Göndərən” sahəsində görəcəyi domen e-poçtudur.

SMTP vasitəsilə e-poçt göndərərkən "Göndərən" sahəsi tələb olunur. Məktublar göndərmək üçün SMTP istifadə edərək, " Domen" - "E-poçt", bununla da məktublar poçt xidmətləri tərəfindən tanınır.


Bu metodun çatışmazlıqları arasında, poçt xidmətlərinin özləri hələ bu funksiyanı təmin etmədiyi üçün bir domen poçt portretinin "yüklənməsinin" qeyri-mümkünlüyünü qeyd etmək lazımdır.




Üst