Smtp autorizācijas kods. E-pasta sūtīšana (SMTP salīdzinājumā ar pasta PHP). Kā nosūtīt e-pastus, izmantojot ASP

Tā kā anonīmu ziņojumu sūtīšana no virtuālajiem Windows hostinga serveriem ir aizliegta, vēstuļu sūtīšana jāveic caur SMTP serveri, kuram ir iespējams izmantot arī mūsu pasta sistēmu.

Kā nosūtīt e-pastus, izmantojot PHP?

Izmantojot jebkuru PHP klasi, kas atbalsta autorizāciju smtp serverī. Piemēram, varat izmantot PHPMailer klases kopu.

Varat arī izmantot mūsu piemēru, kas īsteno vēstuļu sūtīšanu, izmantojot smtp serveri, kam nepieciešama autorizācija. Tāpēc neaizmirstiet skriptam pievienot atbilstošu piekļuves informāciju, piemēram:

// Ja jums ir jāparāda SMTP sesijas žurnāls, varat noņemt komentāru no šīs rindas. // $_SERVER["atkļūdošana"] = true; function MailSmtp ($saņēmējs, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP servera adrese$smtp_port = 25 ; // SMTP servera ports$smtp_user = " [aizsargāts ar e-pastu]" ; // Lietotājvārds autorizācijai SMTP serverī$smtp_password = "PasSWORd" ; // Parole autorizācijai SMTP serverī$mail_from = " [aizsargāts ar e-pastu]" ; // Pastkaste, no kuras tiek sūtīta vēstule$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($ zeķe, 512); if (! $sock ) ( printf ( "Socket nav izveidota\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 , "PASTAS NO:<" . $mail_from . ">" ); smtp_msg ($sock , "RCPT UZ:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Subject: " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) funkcija smtp_msg ($sock , $msg ) ( if ( ! $sock ) ( printf ("Broken socket!\n" ); iziet(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Sūtīt no mums : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket ir uz leju\n" ); iziet(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Iegūts no servera: %s
" , nl2br (htmlspecialchars ($str )); ) $e = eksplodēt (" " , $str ); $kods = array_shift ($e ); $str = implode ( " " , $e ); if ($kods > 499 ) ( printf ( "Problēmas ar SMTP sarunu.

Kods %d.
Ziņojums %s
"
, $kods , $str ); izeja(1); ) ) ) ?>

Lejupielādējiet gatavā skripta piemēru ar funkciju MailSmtp(): smtpauth.php.sample

Varat izmantot iepriekš aprakstīto funkciju MailSmtp (), lai tieši aizstātu funkciju mail (); apsveriet vienkāršākās PHP formas piemēru:

// Ziņojumu galvenes, tās nosaka ziņojuma kodējumu, laukus No, Kam utt.$headers = "MIME versija: 1.0\r\n" ; $galvenes .= "Satura veids: teksts/html; charset=windows-1251\r\n"; $headers .= "Kam: $uz \r\n" ; $galvenes .= "No: sūtītāja vārds " ; // pasts ($kam, $tēma, $ziņa, $headers); request_once "smtpauth.php" ; MailSmtp ($kam, $tēma, $ziņa, $galvenes); ) ?>
Kam: Temats: Teksts: 
 
 

Lai šī forma darbojās bez funkcijas mail(), mēs iekļāvām failu smtpauth.php, izmantojot request_once, un izsaucām tajā aprakstīto funkciju MailSmtp() ar argumentiem, kas līdzīgi kā mail(). Tajā pašā laikā mēs kodā komentējām mail() izsaukumu, lai izvairītos no kļūdām, izpildot skriptu.

Kā nosūtīt e-pastus, izmantojot ASP.NET?

Ja izmantojat versiju 2.0, tad izmantojiet MailMessage klasi System.Net.Mail), labi aprakstīts.

Tālāk ir sniegti piemēri tā izmantošanai C# un VisualBasic valodās:

Piemērs C# valodai:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // izveidojot jaunu burtu ziņa.To.Pievienot(" [aizsargāts ar e-pastu]"); // adresāta adreses pievienošana ziņa.No = new MailAddress("from@" domēns.tld", "Sūtītāja vārds"); // norādot sūtītāja nosaukumu un adresi message.Subject = "Ziņojuma tēma"; // precizējot vēstules tēmu message.BodyEncoding = System.Text.Encoding.UTF8; // norādot burtu kodējumu message.IsBodyHtml = false; // norādot burta formātu (true — HTML, false — not HTML) message.Body = "Ziņojuma teksts"; // norādot vēstules tekstu (pamattekstu). SmtpClient klients = new SmtpClient("smtp.site",25); // jauna savienojuma izveide ar serveri "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // nosaka ziņojumu nosūtīšanas metodi client.EnableSsl = false; // atspējo nepieciešamību izmantot drošu savienojumu ar serveri client.UseDefaultCredentials = false; // atspējot noklusējuma autorizācijas informācijas izmantošanu client.Credentials = new NetworkCredential("postmaster@ domēns.tld", "***parole***"); // norādot nepieciešamo informāciju (lietotājvārdu un paroli) autorizācijai SMTP serverī klients.Sūtīt(ziņa); // sūtīt ziņu %>

Lejupielādējiet aizpildītas veidlapas piemēru, kurā parādīta izmantošana šī metode: MailForm.aspx.

VisualBasic valodas piemērs:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@domēns.tld", "Sūtītāja_nosaukums") smtpMssg.To.Add (" [aizsargāts ar e-pastu]") " pievienojot adresāta adresi smtpMssg.Subject = "E-pasta tēma" "norāde uz vēstules tēmu smtpMssg.Body = "Ziņojuma teksts" " norāde uz vēstules tekstu (pamattekstu). smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " burtu kodējuma norāde smtpMssg.IsBodyHtml = false " burta formāta norāde (true - HTML, false - nevis HTML) Aptumšot SmtpMail kā jaunu SmtpClient ("smtp.site", 25) " jauna "SmtpClient" tipa objekta deklarācija SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "norāde par vēstules piegādes veidu SmtpMail.UseDefaultCredentials = False "pēc noklusējuma atspējot autorizācijas akreditācijas datu izmantošanu" SmtpMail.EnableSsl = False " atspējo nepieciešamību izmantot drošu savienojumu ar serveri SmtpMail.Credentials = new NetworkCredential("postmaster@ domēns.tld", "***parole***") "norādot nepieciešamo informāciju (lietotājvārdu un paroli) autorizācijai SMTP serverī SmtpMail.Send(smtpMssg) " nosūtot ziņojumu %>

Ir arī novecojusi (un novecojusi) SmtpMail klase (izmantojot nosaukumvietu System.Web.Mail). Tālāk ir sniegts piemērs tās izmantošanai VisualBasic valodai:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " jauna objekta "MailMessage" tipa deklarācija smtpMssg.From = "Sūtītāja_nosaukums domēns.tld>" "Sūtītāja vārda un adreses norāde smtpMssg.To = "admin@ domēns.tld" " norāde par saņēmēja adresi smtpMssg.BodyFormat = MailFormat.Text " vēstules formāta norāde smtpMssg.BodyEncoding = Kodēšana.UTF8 "norādot burtu kodējumu smtpMssg.Subject = "E-pasta tēma" "norāde uz vēstules tēmu smtpMssg.Body = "Ziņojuma teksts" " norāde uz vēstules tekstu smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "norādot uz servera nepieciešamību pēc SMTP autorizācijas smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domēns.tld") "lietotājvārds autorizācijai smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***parole***") "parole autorizācijai SmtpMail.SmtpServer = "smtp.site" ", norādot SMTP servera adresi SmtpMail.Send(smtpMssg) " nosūtot ziņojumu %>

Kā nosūtīt e-pastus, izmantojot ASP?

Lūdzu, ņemiet vērā, ka, izmantojot mūsu smtp serveri, ir nepieciešama autorizācija, tāpēc neaizmirstiet skriptam pievienot atbilstošu piekļuves informāciju, piemēram:

<% 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@domēns.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "parole" .Atjaunināt Beigt ar Set cdoMessage = CreateObject("CDO.Message") Ar cdoMessage Set .Configuration = iConfig .From = "Pārbaudīt lietotāju domēns.tld>" .To = "Lietotājs " .Subject = "Sveiks, lietotāj" .TextBody = "Es rakstu šo ziņojumu no ASP skripta." .Sūtīt Beigt ar Set cdoMessage = Nekas Iestatīt iConfig = Nekas %>

Dažās CMS jau ir iebūvēti rīki korespondences vai atbilstošu moduļu nosūtīšanai; apskatīsim populārākos.

Wordpress

Šai CMS ir īpašs modulis “WP Mail SMTP”, tā konfigurācijas piemērs ir aprakstīts moduļa lapā.

Pievērsiet uzmanību ilustrācijai piemērā; mūsu pasta sistēmā ir nepieciešams izmantot 25. portu un SSL šifrēšana nav nepieciešama.

Joomla

Administrēšanas panelī dodieties uz sadaļu “Vispārīgie iestatījumi”, atlasiet cilni “Serveris”. Laukā “Pasts” ir jāizvēlas sūtīšanas metode kā “SMTP serveris”, laukos “SMTP servera adrese” un “SMTP pieteikšanās” un “SMTP parole” norādiet atbilstošus pasta sistēmas datus, piemēram: smtp.site, kaste@jūsu_domēns un atbilstošs parole.

Drupal

Šai CMS ir arī savs modulis darbam ar SMTP serveri, pamatojoties uz PHPMailer. Jūs varat lejupielādēt šo moduli tā lapā CMS Drupal vietnē; moduļa instalēšanas apraksts ir pieejams arhīvā kopā ar to.

NetCat

Šai CMS nav iebūvētu funkciju darbam ar SMTP serveri. Lai nosūtītu pastu, izmantojot vietnes skriptus, mēs varam piedāvāt izmantot mūsu risinājumu; lai to savienotu, jāveic šādas darbības:

  • Lejupielādējiet arhīvu ar nepieciešamajiem failiem no mūsu vietnes ( send_auth_mail.php Un mail.inc.php) un izpakojiet to savā datorā;
  • Rediģēt failu send_auth_mail.php no arhīva, norādot tajā savienojuma datus ar vēlamo SMTP serveri:

    • $mail_smtpServer = "smtp.vietne"; (SMTP servera adrese)
    • $mail_port = "25" ; (savienojuma ports)
    • $pasta_lietotājvārds = "[aizsargāts ar e-pastu]" ; (lietotājvārds autorizācijai SMTP serverī)
    • $pasta_parole = "Parole"; (parole autorizācijai SMTP serverī)
  • Izveidojiet faila rezerves kopiju domain.tld/www/netcat/admin/mail.inc.php;
  • lejupielādēt failus send_auth_mail.php Un mail.inc.php uz virtuālo vietni direktorijā domain.tld/www/netcat/admin/

domēns.tld jāaizstāj ar jūsu domēna vārdu.

Piedāvātais risinājums darbojas ar visiem NetCat moduļiem, kas izmanto šīs CMS standarta funkcijas pasta sūtīšanai.

Ilgu laiku meklēju risinājumu, kā sūtīt vēstules lietotājiem nevis caur mail() funkciju PHP, bet gan caur SMTP pasta serveriem. Internetā nav daudz dažādas informācijas, un tas, kas tur ir, nedarbojas īsti pareizi vai nedarbojas vispār. Tāpēc es visu saliku kopā un uzrakstīju savu kodu, pamatojoties uz gataviem, kas tiek prezentēti vietnēs.

Kāpēc sūtīt, izmantojot SMTP, nevis pastu ()

Mana atbilde ir pavisam vienkārša – kādu laiku vīrusi caur manu serveri sūtīja tonnām vēstuļu, kā rezultātā daudzi e-pasta sūtītāji, it īpaši gmail.com, tika BANĒTI manu IP adresi, un saistībā ar to lietotāji varēja saņemt vēstules, tāpēc es bija jāmeklē alternatīva, un es to atradu - tas ir SMTP

Jūs varētu interesēt, kāpēc mans skripts ir labāks par citiem, kas guļ klajā?! es atbildēšu

  1. Tas darbojas ar Yandex, Rambler, Mail (gmail nevarēja uzvarēt)
  2. Notīrīt kodu. Lai to konfigurētu, vienkārši mainiet dažas rindiņas
  3. Sūta e-pastus HTML formātā

Šeit ir mana scenārija priekšrocības, kuras es nekur internetā neatradu, bet no katra paņēmu visu nepieciešamo. Tātad, apskatīsim kodu.

Funkcija smtpmail($mail_to, $subject, $message, $service="yandex") ( $config["smtp_charset"] = "windows-1251"; //ziņojuma kodējums. (vai UTF-8 utt.) $config [ "smtp_from"] = "mashintop.ru"; //Jūsu vārds vai jūsu vietnes nosaukums. Tiks parādīts, kad tiks lasīts laukā "No" $config["smtp_debug"] = false; //Ja vēlaties lai redzētu kļūdu ziņojumus, norādiet true, nevis false $config["smtp_port"] = "25"; // Darba ports. Nemainiet, ja neesat pārliecināts. if($service=="yandex") ( $config[ "smtp_searcher"] = "yandex. ru"; $config["smtp_email"] = " [aizsargāts ar e-pastu]"; $config["smtp_username"] = "mashintop"; //Mainiet savas pastkastes nosaukumu. $config["smtp_host"] = "smtp.yandex.ru"; //serveris pasta sūtīšanai $config[" smtp_password "] = "moi_parol"; //Mainīt paroli ) elseif($service=="rambler") ( $config["smtp_searcher"] = "rambler.ru"; $config["smtp_email"] = " [aizsargāts ar e-pastu]"; $config["smtp_username"] = "mashintop"; //Mainiet savas pastkastes nosaukumu. $config["smtp_host"] = "smtp.rambler.ru"; //serveris pasta sūtīšanai $config[" smtp_password "] = "moi_parol"; //Mainīt paroli ) elseif($service=="mail") ( $config["smtp_searcher"] = "mail.ru"; $config["smtp_email"] = " [aizsargāts ar e-pastu]"; $config["smtp_username"] = "mashintop"; //Mainiet savas pastkastes nosaukumu. $config["smtp_host"] = "smtp.mail.ru"; //serveris pasta sūtīšanai $config[" smtp_password "] = "moi_parol"; //Mainīt paroli ) elseif($service=="gmail") ( $config["smtp_searcher"] = "gmail.com"; $config["smtp_email"] = " [aizsargāts ar e-pastu]"; $config["smtp_username"] = "alexeybertram"; //Mainiet savas pastkastes nosaukumu. $config["smtp_host"] = "smtp.gmail.com"; //serveris pasta sūtīšanai $config[" smtp_password "] = "moi_parol"; //Mainīt paroli ) $header="Datums: ".date("D, j M Y G:i:s")." +0700rn"; $header.="No: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$config[" smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X-Mailer: Sikspārnis! (v3.99.3) Professionalrn"; $header.="Atbildēt: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(" ".$config["smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X-Priority: 3 (normāls)rn"; $header.="Ziņojuma ID:<172562218.".date("YmjHis")."@".$config["smtp_searcher"].">rn"; $header.="Kam: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("")))."? =<$mail_to>rn"; $header.="Tēma: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$subject."") )))."?=rn"; $header.="MIME-versija: 1.0rn"; $header.="Satura veids: teksts/html; charset=windows-1251rn"; $header.="Satura pārsūtīšanas kodējums: 8bitrn"; $smtp_conn = fsockopen("".$config["smtp_host"]."", $config["smtp_ports"],$errno , $errstr, 10); if(!$smtp_conn) (drukāt "savienojums no serveriem neizdevās"; fclose($smtp_conn); exit;) $data = get_data($smtp_conn); fputs($smtp_conn,"EHLO ". $ config["smtp_searcher"]."rn"); $kods = substr(get_data($smtp_conn),0.3000); if($code != 250) (drukāt "EHLO hello error"; fclose($smtp_conn) ; iziet; ) fputs($smtp_conn,"AUTH LOGINrn"); $kods = substr(get_data($smtp_conn),0.3000); if($code != 334) (drukāt "serveris neļāva sākt autorizāciju"; fclose ($ smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_lietotājvārds"]."")."rn"); $kods = substr(get_data($smtp_conn),0,3000) ; ja ($code != 334) (drukāt "kļūda, piekļūstot šim lietotājam"; fclose($smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_password"].""). "rn" ); $kods = substr(get_data($smtp_conn),0,3000); if($code != 235) (izdrukājiet "nepareizu paroli"; fclose($smtp_conn); iziet;) fputs($smtp_conn,"PASTA NO:".$config["smtp_email"]."rn"); $kods = substr(get_data($smtp_conn),0,3000); if($code != 250) (drukāt "serveris atteicās no MAIL FROM komandas"; fclose($smtp_conn); exit;) fputs($smtp_conn,"RCPT TO:".$mail_to."rn"); $kods = substr(get_data($smtp_conn),0,3000); if($kods != 250 UN $kods != 251) (drukāt "Serveris nepieņēma RCPT TO komandu"; fclose($smtp_conn); exit;) fputs($smtp_conn,"DATArn"); $kods = substr(get_data($smtp_conn),0,3000); if($code != 354) (drukāt "serveris nepieņēma DATU"; fclose($smtp_conn); exit;) fputs($smtp_conn,$header."rn".$message."rn.rn"); $kods = substr(get_data($smtp_conn),0,3000); if($kods != 250) (drukāt "kļūda nosūtot vēstuli"; fclose($smtp_conn); exit;) fputs($smtp_conn,"QUITrn"); fclose($smtp_conn); ) funkcija get_data($smtp_conn) ( $data=""; while($str = fgets($smtp_conn,515)) ( $data .= $str; if(substr($str,3,1) == " " ) ( pārtraukums; ) ) return $data; ) $text_email = " Jūs tikko pievienojāt sludinājumu vietnē mashintop.ru. Jūs varat to apskatīt šeit
Jūsu atslēga: ".$key."

Izmantojot šo atslēgu, varat pārvaldīt savu reklāmu.

"; $text_email .= " "; smtpmail(" [aizsargāts ar e-pastu]", "Reklāmas atslēga vietnē mashintop.ru", $text_email, "yandex"); //izmantojiet Yandex smtpmail(" [aizsargāts ar e-pastu]", "Reklāmas atslēga vietnē mashintop.ru", $text_email, "mail"); //izmantojiet e-pastu smtpmail(" [aizsargāts ar e-pastu]", "Reklāmas atslēga vietnē mashintop.ru", $text_email, "rambler"); //izmantojiet rambler smtpmail(" [aizsargāts ar e-pastu]", "Reklāmas atslēga vietnē mashintop.ru", $text_email, "gmail"); // bet gmail nedarbojas :(

Tas arī viss, gatavais skripts ir jūsu rokās, vienkārši nokopējiet to, mainiet $config masīva vērtības un viss darbosies labi.

Tagad apskatīsim dažus elementus, kuriem es vēlētos pievērsties.

Piemēram, kļūda, ko saņemam, mēģinot nosūtīt Google serveriem, izmantojot SMTP. Sākotnēji mēs redzam šo kļūdas tekstu:

Lai redzētu kaut ko konkrētāku, nedaudz modificēsim kodu

Fputs($smtp_conn,"AUTH LOGINrn"); $kods = substr(get_data($smtp_conn),0,3000); atbalss $kods; if($code != 334) (drukāt "serveris neļāva sākt autorizāciju"; fclose($smtp_conn); iziet;)

Un galu galā mēs iegūstam ļoti konkrētu kļūdu

530 5.7.0 Vispirms ir jāizdod STARTTLS komanda. x4sm16408296lbn.2 — gsmtp

Es nezinu, ko tas precīzi nozīmē, bet es uzskatu, ka tam ir kāds sakars ar drošu, nenodrošinātu savienojumu. Pagaidām nezinu, kā no tā tikt vaļā, tāpēc gmail pagaidām paliek nepārspēts.



2019-08-05

Sveiki, dārgais apmeklētāj!

Lūdzu, piedodiet par kavēšanos ar emuāra atjaunināšanu. Bet tam ir pilnīgi saprotams izskaidrojums. Galu galā tā bija vasara, vasarnīca, viesi, mežs, ūdens un daudz kas cits, kas neļāva man risināt vietnes izveides jautājumus. Bet tagad esmu nedaudz atbrīvojies, viesi ir devušies prom, un domāju, ka tagad noteikti varēšu tam pievērst pienācīgu uzmanību.

Tātad, pēc tam, kad iepriekšējā rakstā mēs savienojām sava domēna pastu ar kādu no pasta pakalpojumiem, tagad apskatīsim, kā varat nosūtīt e-pastu no vietnes. Turklāt tādā veidā, lai mūsu vēstules nenonāktu SPAM, bet gan uzticami, ar lielu varbūtības pakāpi tiktu piegādātas mūsu adresātiem.

Kopumā ir iebūvēta funkcija mail() vēstuļu sūtīšanai PHP. Bet jāatzīmē, ka, neskatoties uz šīs metodes vienkāršību (šajā gadījumā, lai nosūtītu vēstules, pietiek norādīt tikai vienu koda rindiņu ar noteiktiem parametriem), šīs opcijas izmantošanai ir būtisks trūkums, kas saistīts ar SPAM problēmu. .

Fakts ir tāds, ka pasta serveru anti-SPAM filtri adresāta pusē īsti neatbalsta vēstules, kas nosūtītas, izmantojot funkciju mail(). Un vairumā gadījumu šādi ziņojumi tiek filtrēti vai pat izdzēsti, pirms tie sasniedz adresātu.

Un, lai pēc iespējas novērstu šādus gadījumus, parasti tiek izmantota cita iespēja, kurā vēstules tiek sūtītas tā, it kā to darītu trešās puses pasta serviss.

Šo metodi sauc par pasta sūtīšanu, izmantojot SMTP ar autorizāciju. Ko mēs šodien aplūkosim, izmantojot atsauksmju veidlapas nosūtīšanas piemēru. Turklāt šim nolūkam izmantosim diezgan pazīstamo un populāro PHPMailer bibliotēku, kas ļauj gluži vienkārši organizēt vēstuļu sūtīšanu caur SMTP.

  • Kā mēs nosūtīsim atsauksmju vēstules
  • Atsauksmju veidlapas izveide
  • PHPMailer bibliotēkas instalēšana
  • Mēs izveidojam skriptu pasta sūtīšanai, izmantojot SMTP
  • Pārbauda e-pasta sūtīšanu
  • Vietnes avota faili

Kā mēs nosūtīsim atsauksmju vēstules

Pirms sākam praktisko darbu ar atsauksmju vēstuļu nosūtīšanu, vispirms izlemsim, kā mēs to darīsim.

Atsauksmes veidlapa ir izstrādāta, lai ļautu lietotājam sazināties ar vietnes administratoru, lai nodotu savu ziņojumu. Parasti šī veidlapa sastāv no vairākiem laukiem un pogas “Iesniegt”.

Principā, lai nosūtītu e-pastu, pietiek izmantot tikai dažus laukus, kas sniedz pietiekamu informāciju par lietotāju un ziņojuma saturu, piemēram:

  • "Vārds" - lai ievadītu ziņas sūtītāja vārdu;
  • "E-pasts" - sūtītāja e-pasta adresei;
  • "Ziņojuma tēma";
  • "Ziņojuma teksts".

Lai gan jūs varat pievienot citus. Piemēram, tālruņa numurs, ja tas patiešām ir nepieciešams.

Mūsu gadījumā šādas vēstules tiks nosūtītas uz vietnes administratora adresi no īstas pastkastes ar autorizāciju pasta pakalpojumā, ar kuru ir savienots mūsu domēns.

Tā kā iepriekšējā rakstā mēs koncentrējāmies uz domēna pasta savienojuma pārbaudi ar pakalpojumu Yandex.Mail, mēs nosūtīsim pastu šai opcijai. Lai gan tas nav svarīgi. Zemāk redzēsit tās opcijas, kuras, mainot, ļaus nosūtīt e-pastu, izmantojot pasta serveri Mail.ru.

Kā īstu pastkastīti, no kuras tiks sūtītas vēstules, mēs izmantosim jaunizveidota domēna pasta lietotāja kontu, teiksim ar adresi [aizsargāts ar e-pastu]. Un mēs nosūtīsim šīs vēstules administratora pastkastes administratoram [aizsargāts ar e-pastu], kuru mēs iepriekš izveidojām iepriekšējā rakstā.

Tādējādi vēstules sūtītājs no atsauksmju veidlapas būs pastkaste [aizsargāts ar e-pastu]., un saņēmējs - [aizsargāts ar e-pastu]. Šajā gadījumā visa informācija par lietotāju, kurš nosūtījis ziņojumu ar tā saturu, tiks pārsūtīts nosūtītās vēstules pamattekstā.

Atsauksmju veidlapas izveide

Pēc tam, kad būsim izlēmuši par vēstuļu nosūtīšanas kārtību, tagad izveidosim atsauksmju veidlapu, ar kuru mēs to darīsim.

Zemāk ir šīs veidlapas HTML kods, kuru ievietosim lapā "Kontakti" (rakstu direktorijā fails kontakty.php).

    "raksts" >

    Kontakti

    Atsauksmes

    "kontakts" darbība = "#" metode = "post" >

    Atsauksmes forma

    Par visiem jautājumiem, pieprasījumiem un biznesa priekšlikumiem varat sazināties ar mums, izmantojot tālāk esošo atsauksmju veidlapu.

    "kontaktu bloks" >

    "kontakta ievade" >

    "teksts" id = "kontakta vārds" vārds = "kontakta vārds" virsraksts = "Nosaukumam jābūt krievu valodā un tajā jābūt vismaz 3 rakstzīmēm" modelis = "{3,}" nepieciešams >

  1. "tukšs kontakts" >

    "kontakta ievade" >

    "e-pasts" id = "E-pasts saziņai" vārds = "E-pasts saziņai" nepieciešams >

  2. "kontakts-tēma" >

  3. "kontakts-komentārs" >

  4. "kontakta poga" >

    "Iesniegt" vārds = "kontakta poga" vērtība = "Sūtīt" >

1. att. Atsauksmes veidlapas HTML kods

Nākamajā ekrānuzņēmumā varat redzēt, kā izskatās šeit redzamā atsauksmju veidlapa.

Tādējādi tiek izveidota vēlamā forma. Un tagad varat pāriet uz jautājumiem par datu apstrādi un nosūtīšanu e-pasta ziņojuma veidā.

PHPMailer bibliotēkas instalēšana

Kā jau minēts iepriekš, pasta sūtīšanai mēs izmantosim PHPMailer bibliotēku, kas ievērojami vienkāršos e-pasta sūtīšanu, izmantojot SMTP protokolu ar autorizāciju trešās puses pasta pakalpojumā.

Lai to instalētu, jums ir jālejupielādē nepieciešamie faili. To var izdarīt no GitHub tīmekļa pakalpojuma, izmantojot Composer (pakešu atkarības pārvaldnieks PHP). Vai arī vienkārši lejupielādējiet nepieciešamos failus parastajā veidā.

73. ekrānuzņēmums

Zemāk ir GitHub tīmekļa pakalpojuma lapa, kurā ir atzīmēta saite uz parasto PHPMailer bibliotēkas lejupielādi.

Turklāt jaunāko versiju 6.0.7, kas tika saglabāta šī raksta tapšanas laikā, var lejupielādēt no pievienotajiem materiāliem.

Jebkurā gadījumā iegūtais arhīva fails ir jāizpako, pēc tam izvilktā PHPMailer-master mape ar visu tās saturu jāievieto vietnes saknē. Tajā pašā laikā vienkāršības labad varat to pārdēvēt par PHPMailer. Zemāk ir PHPMailer mapes saturs, kas ievietots vietnes saknes direktorijā.

Tādējādi mēs instalējām PHPMailer bibliotēku. Pēc tam mēs varam sākt veidot skriptu, ar kuru mēs nosūtīsim e-pasta ziņas no mūsu vietnes.

Mēs izveidojam skriptu pasta sūtīšanai, izmantojot SMTP

Lai izveidotu skriptu, pietiek izmantot GitHub lapā sniegtos ieteikumus par PHPMailer lietošanu, kurus mēs iepriekš izmantojām bibliotēkas lejupielādei.

Tie jo īpaši norāda, ka skripta sākumā ir nepieciešams importēt PHPMailer klases globālajā nosaukumu telpā. Un tiek dotas konkrētas atbilstošā koda rindas. Ir arī PHPMailer rekvizītu un metožu izmantošanas piemēri, tostarp iespēja nosūtīt pastu, izmantojot SMTP.

Bet, ja ar to nepietiek, tad var izmantot arī dokumentāciju, kurā ir visu šīs bibliotēkas īpašību un metožu apraksts.

74. ekrānuzņēmums

Tālāk ir norādīts skripta kods pasta sūtīšanai no atsauksmju veidlapas, izmantojot SMTP ar autorizāciju. Kur visas ar PHPMailer saistītās rindas ir sniegtas ar paskaidrojumiem un izceltas ar gaišu fonu.

Pārējā daļa, ieskaitot fragmentus, kas saistīti ar datu saņemšanu un apstrādi no formas, kas mums iepriekš bija jāizmanto citos procesoros, ir apzīmēta ar tumšu fonu. Tie tika detalizēti apspriesti iepriekš rakstā, kas īpaši veltīts jautājumiem par datu iegūšanu un pārbaudi no veidlapas PHP. Kur mēs runājām arī par universālo lietotāja funkciju veidlapu datu validēšanai un apstrādei pārbaudes_simbols().

Mēs ievietosim šo skriptu tajā pašā kontakty.php failā, kurā iepriekš izveidojām atsauksmju veidlapu.

    //----Skripts pasta sūtīšanai, izmantojot SMTP, izmantojot PHPMailer----

    //Importējiet PHPMailer klases globālajā nosaukumvietā. Tiem jāatrodas skripta augšdaļā, nevis funkcijā

    izmantot PHPMailer\PHPMailer\PHPMailer ;

    izmantot PHPMailer\PHPMailer\Exception ;

    ja (!tukšs($_POST["kontaktpoga" ])) (

    $nosaukums = $_POST["kontaktpersonas vārds" ];

    $name = check_simbols ($name, "Nosaukums" , "1" , "/^+\z/iu" );

    $email = $_POST["kontakt-e-pasts" ];

    $email = check_symbol ($email, "E-mail" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $subject = $_POST["kontaktpersonas tēma" ];

    $subject = check_symbol ($subject, "Message Subject" , "1" , "0" );

    $komentārs = $_POST["kontakts-komentārs" ];

    $komentārs = check_simbols ($komentārs, "Ziņojuma teksts", "1" , "0" );

    ja (!tukšs($GLOBALS["alert" ])) (

    $ brīdinājums = "Veidlapas dati netika nosūtīti. Tika atrastas šādas kļūdas:\n".$alert;

    ietver"alert.php" ;

    cits {

    // Bibliotēkas pievienošana

    pieprasīt"PHPMailer/src/PHPMailer.php" ;

    pieprasīt"PHPMailer/src/Exception.php" ;

    pieprasīt"PHPMailer/src/SMTP.php" ;

    $ pasts = jauns PHPMailer(); //Klases inicializācija

    $no = " [aizsargāts ar e-pastu]" ; //E-pasta adrese, no kuras tiek sūtīta vēstule

    $līdz = " [aizsargāts ar e-pastu]" ; //Saņēmēja adrese

    $ pasts -> isSMTP(); //Izmantojiet SMTP protokolu

    $mail -> Host = "smtp.yandex.ru" ; //Pasta servera adrese

    $ pasts -> SMTPAuth = taisnība ; //Iespējot autorizācijas režīmu

    $mail -> Lietotājvārds = " [aizsargāts ar e-pastu]" ; //Pieteikšanās no domēna e-pasta, kas savienots ar trešās puses e-pasta pakalpojumu (šajā gadījumā Yandex.Mail)

    $ pasts -> Parole = "27MrDon89" ; //Domēna pasta parole

    $ pasts -> SMTPSecure = "ssl" ; //Šifrēšanas protokols

    $ pasts -> Port = "465" ; //SMTP servera ports

    $ pasts -> CharSet = "UTF-8" ; //Kodējums

    $mail -> setFrom ($from, "Administrators" ); //Sūtītāja adrese un vārds

    $mail -> addAddress ($kam, "Administrators" ); //Saņēmēja adrese un vārds

    $mail -> isHTML ( taisnība ); //Iestatiet e-pasta formātu uz HTML

    $ pasts -> Tēma = "Iesniegta atsauksmju veidlapa"; //E-pasta tēma (virsraksts)

    $ pasts -> pamatteksts = "

    Sūtītāja vārds: $name

    Sūtītāja adrese: $e-pasts

    Ziņojuma tēma: $subject

    Ziņojuma saturs: $komentārs



    " ; //Ziņojuma saturs

    $ pasts -> AltBody = "Alternatīvais burtu teksts"; //Alternatīva e-pasta adrese, ja e-pasta klients neatbalsta HTML formātu

    $ pasts -> SMTPDbug = 0 ; //Iespējot SMTP atkļūdošanu: 0 — izslēgts (parastai lietošanai), 1 = klienta ziņojumi, 2 — klienta un servera ziņojumi

    ja($mail -> send()) (

    $ brīdinājums = "Ziņa nosūtīta"; //Pārlūkprogrammas dialoglodziņā izvadiet ziņojumu par veiksmīgu vēstules nosūtīšanu

    cits {

    $ brīdinājums = "Kļūda, e-pastu nevar nosūtīt:".$mail -> ErrorInfo ; //Izvada kļūdas ziņojumu

    ietver"alert.php" ;

5. att. Skripts e-pasta sūtīšanai caur SMTP ar autorizāciju

Kā redzat, visām ar e-pasta ziņojuma nosūtīšanu tieši saistītajām rindiņām, kurās norādītas nepieciešamās metodes un rekvizīti, ir pievienoti komentāri. Tāpēc nav jēgas atkārtoties, bet mēs varam pakavēties tikai pie dažiem no tiem, kas patiešām prasa papildu skaidrojumus, proti:

1. Sakarā ar to, ka vēstule ir nosūtīta no trešās puses pasta servisa, šeit tiek piemēroti konkrētajam SMTP serverim atbilstošie iestatījumi. Šajā gadījumā Yandex.Mail servera lietošanas gadījumā tiek piemērotas šādas rekvizītu vērtības:

  • Īpašums Uzņēmēja(poz.28) - pasta servera adrese ar vērtību smtp.yandex.ru;
  • Īpašums SMTPSecure
  • Īpašums Osta

Šīs rekvizītu vērtības tika ņemtas no Yandex.Help lapas, kas parādīta nākamajā ekrānuzņēmumā.

Bet šādu informāciju var iegūt arī no citiem resursiem. Lai to izdarītu, meklētājprogrammā vienkārši ievadiet atbilstošo vaicājumu, piemēram: “Yandex smtp serveris”. Kur var atrast lielu skaitu atsauču par šo jautājumu.

Līdzīgā veidā iestatījumu vērtības var iegūt no citiem SMTP serveriem. Zemāk ir Mail.ru palīdzības lapas ekrānuzņēmums, kurā tiek parādīti pasta pakalpojuma Mail.ru SMTP servera iestatījumi.

Tādējādi, ja Mail.ru izmantojat kā trešās puses SMTP serveri, jāpiemēro šādas PHPMailer klases rekvizītu vērtības:

  • Īpašums Uzņēmēja(poz.28) - pasta servera adrese (smtp.mail.ru);
  • Īpašums SMTPSecure(32. poz.) - Šifrēšanas protokols (ssl);
  • Īpašums Osta(33. poz.) - SMTP servera ports (465).

Līdzīga pieeja būtu jāpiemēro citiem e-pasta pakalpojumiem.

2. Īpašumā Lietotājvārds(30. poz.) nepieciešams norādīt pilnu domēna pastkastes adresi. Šajā gadījumā, " [aizsargāts ar e-pastu]".

Tomēr, ja vēstuļu sūtīšanai izmantojat citu kontu, nevis domēna pasta kontu, bet adresi, kas ir tieši saistīta ar pasta pakalpojumu, piemēram, " [aizsargāts ar e-pastu]", tad pieteikumvārdam ir jābūt tikai adreses daļai līdz zīmei "@". Šādā gadījumā pieteikumvārdam būtu vērtība "feedback".

3. PHPMailer nodrošina īpašumu SMTPDbug(50. poz.), kas ļauj pārlūkprogrammas ekrānā parādīt dažāda līmeņa kļūdas. Šī funkcija ievērojami vienkāršo problēmu atrašanu skripta atkļūdošanas laikā.

Parasti parastajā režīmā, kad vērtība ir iestatīta uz 0, detalizētas kļūdu informācijas izvade ir atspējota. Bet, ja rodas problēmas ar pasta sūtīšanu vai atkļūdošanas laikā, ir iespējams izmantot citas vērtības, lai parādītu jēgpilnāku informāciju par kļūdu.

Lai redzētu, kā tas izskatās praksē, īslaicīgi ieviesīsim iestatījumos kļūdu. Piemēram, domēna pasta parolē (īpašums Parole, 31. poz.). Un arī, lai parādītu detalizētu informāciju par kļūdu, kas īslaicīgi iestatīta īpašumā SMTPDbug(poz.50) vērtība 1. Pēc tam, kad viss ir atkļūdots un pārbaudīts, mēs atspējosim SMTP atkļūdošanas režīmu, aizstājot 1 ar 0.

Skripta beigu daļā pēc visu nepieciešamo rekvizītu un metožu norādīšanas metode tiek izmantota vēstules nosūtīšanai sūtīt ()) (51. poz.). Un, ja vēstule ir nosūtīta, un metode sūtīt () priekš objektam $ pasts atgriež true, pēc tam pārlūkprogrammas dialoglodziņā, izmantojot mainīgo $alert Tiks parādīts ziņojums par veiksmīgu pasta nosūtīšanu (52. poz.).

Ja kāda iemesla dēļ pastu nevarēja nosūtīt un attiecīgi metode nevarēja atgriezties true, tad šim stāvoklim tiks pievienots atbilstošs kļūdas ziņojums (55. poz.).

Pārbauda e-pasta sūtīšanu

Pēc tam, kad esam izveidojuši skriptu pasta sūtīšanai, mums, protams, jāaplūko mūsu “radošuma” rezultāts. Vai mēs šeit visu esam ņēmuši vērā un vai neesam pieļāvuši nekādas kļūdas?

Lai to izdarītu, mēģināsim, kā paredzēts, nosūtīt ziņojumu no lietotāja vietnes administratoram no atsauksmju veidlapas. Tālāk ir redzams atsauksmju veidlapas ekrānuzņēmums ar laukiem, kas ir aizpildīti pirms tās iesniegšanas.

Un šeit ir veidlapas iesniegšanas rezultāts.

Kur no ziņojuma pārlūkprogrammas dialoglodziņā ir skaidrs, ka vēstuli nevar nosūtīt SMTP savienojuma problēmas dēļ.

Bet, kopš tagad īpašums SMTPDbug(50. poz.) tiek piešķirta vērtība 1, tad mēs varam redzēt detalizētu informāciju par notikušo kļūdu un noskaidrot tās rašanās iemeslu.

Nākamajā ekrānuzņēmumā redzams, ka, mēģinot izveidot savienojumu, tika atklāta autentifikācijas kļūda, kas nozīmē nepareizas pieteikšanās vai paroles izmantošanu.

Pēc paroles neatbilstības novēršanas (iepriekš tika izmantota nepareiza parole, lai varētu pārbaudīt papildu informācijas izvadi par kļūdu), mēs mēģināsim nosūtīt vēstuli vēlreiz.

Šoreiz viss it kā izdevās un saņēmām ziņu, ka pasts ir veiksmīgi nosūtīts. Acīmredzot, izņemot apzināti ievadīto pagaidu kļūdu domēna pasta parolē, citas kļūdas mēs nepieļāvām.

Bet, lai pārliecinātos, ka vēstule tiešām ir piegādāta adresātam, ievadīsim pastu ar adresi [aizsargāts ar e-pastu] un paskaties uz rezultātu.

Kā redzat, vēstule no adreses [aizsargāts ar e-pastu], no kuras mēs nosūtījām e-pasta ziņojumu ar nosaukumu "Atsauksmes" veiksmīgi sasniedza vietnes administratoru. Tajā pašā laikā vēstules pamattekstā ir viss saturs, ko ģenerējām skriptā, izmantojot datus, kas saņemti no atsauksmju veidlapas, proti:

  • Sūtītāja vārds: Nikolajs;
  • Sūtītāja adrese: [aizsargāts ar e-pastu];
  • Ziņojuma tēma: Pārbauda pasta sūtīšanu;
  • Ziņojuma saturs: Testa ziņojums.

Tagad pēc veiksmīgas pasta sūtīšanas pārbaudes varat atspējot SMTP atkļūdošanas režīmu, piešķirot rekvizītu SMTPDbug(50. poz.) vērtība 0.

Tādējādi mēs pabeidzām uzdevumu izveidot rīku pasta sūtīšanai caur SMTP ar autorizāciju, izmantojot trešās puses pasta serveri.

Piemēram, nākamajā rakstā apskatīsim, kā nosūtīt apstiprinājuma e-pastus reģistrētā lietotāja konta datu atkopšanai.

Vietnes avota faili

Vietnes avota failus ar šajā rakstā veiktajiem atjauninājumiem var lejupielādēt no pievienotajiem papildu materiāliem:

  • www direktoriju faili
  • MySQL datu bāzu tabulas

PHP ir diezgan populāri izmantot skriptus, kas automatizē vēstuļu nosūtīšanas procesu. Šajā rakstā mēs apskatīsim vienkāršu skriptu, kas nosūta vēstules adresātiem, izmantojot SMTP ( Vienkāršs pasta pārsūtīšanas protokols ). Būtu pārāk viegli aprobežoties tikai ar šo funkcionalitāti, skripts atbalsta arī pielikumus, tas ir, vēstulei varat pievienot pdf, txt vai doc failu.

Skripta iestatīšana ir diezgan vienkārša; viss, kas jums nepieciešams, ir sūtītāja pieteikumvārds un parole e-pastam, no kura tiks nosūtītas vēstules.

Skripts darbojas ar km_smtp_class.php klasi, labā šajā klasē ir tā, ka tā atbalsta dažādus SSL un TLS protokolus, kas nodrošina drošu datu pārraidi.

Šeit ir pats skripts:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [aizsargāts ar e-pastu]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Adresāta e-pasts $Receiver = " [aizsargāts ar e-pastu]"; // Ziņojuma tēma $Subject = "E-pasta sūtīšana no PHP"; // Ziņojuma teksts (HTML valodā) $Text = "Sveiki!
Ziņojums nosūtīts no skripta Mowshon Vietne: http://site"; // Pielikums vēstulē - faila adrese $Attachment = ""; /* $mail = new KM_Mailer(serveris, ports, lietotājs, parole, tips); */ /* Veids var būt: null, tls vai ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_serveris"], $SenderConfig["SMTP_ports"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Pievienot failu if($Attachment) ($mail->addAttachment($Attachment);) // Pievienot citus adresātus $mail->addRecipient( " [aizsargāts ar e-pastu]"); $ pasts-> addRecipient(" [aizsargāts ar e-pastu]"); /* $ pasts-> sūtīt(No, Kam, Tēma, Teksts, Temats = neobligāts) */ $SendMail = $ pasts-> sūtīt($SenderConfig["SMTP_e-pasts"], $Receiver, $Subject, $Teksts ); // Notīrīt adresātu sarakstu $mail->clearRecipients(); $mail->clearCC(); $mail->clearBCC(); $mail->clearAttachments(); ) else ( echo "Kamēr radās kļūda savienojuma izveide ar SMTP serveri"; ) ?>

Skripta iestatīšana galvenokārt balstās uz $SenderConfig masīvu, šeit mums jānorāda SMTP: serveris, ports, pieteikšanās un e-pasta parole. Aprakstīsim katru masīva atslēgu:

SMTP_serveris — SMTP servera adrese (individuāla adrese dažādiem e-pastiem)

Mail.ru pasts: smtp.mail.ru ports: 25, 587 un 465 (ar SSL šifrēšanu)

Yandex pasts: smtp.yandex.ru ports: 25, 587 465 (SSL ports)

Rambler pasts: mail.rambler.ru ports: 25, 587 465 (SSL ports)

Yahoo Mail: smtp.mail.yahoo.com SSL ports: 465

(Ja nepieciešama to smtp serveru adrese, kuri nav sarakstā, rakstiet komentāros)

SMTP_ports — mēs to jau aprakstījām iepriekš katram smtp serverim.

SMTP_email - precīzāk būtu lietotājs, bet skaidrības labad uzrakstīju epastu, norādām e-pasta adresi.

SMTP_pass — e-pasta parole, kas tika norādīta kā vērtība atslēgā SMTP_email


SMTP_type — noklusējuma vērtība NULL. Protokols, pēc kura tiks nosūtītas vēstules. Protokoli: SSL un TLS

Varat pievienot vēstulei pielikumus, vienkārši norādot faila pilno adresi mainīgajā $Attachment (/var/patch/to/file/File.pdf)

Ja jums ir kādi jautājumi, rakstiet tos zemāk esošajos komentāros.

Pasts PHP

Šī funkcija pēc noklusējuma tiek ieviesta kā e-pasta sūtīšana. Šai funkcionalitātei nav nepieciešams trešās puses serveris, lai pārsūtītu e-pastu. Lai pārbaudītu šīs funkcijas pareizību, vienkārši izveidojiet failu test.php mapē ar vietni un ievietojiet tur šādu kodu:

Kur vietā "EMAILSAŅĒMĒJS" Ievadiet e-pastu, uz kuru jānosūta vēstule.

Novietojiet šo failu savas vietnes saknē.

Pēc tam adreses joslā ievadiet www.YourDomain/test.php. Ja uz norādīto e-pastu tiek saņemta vēstule, tad jūsu mitināšana darbojas pareizi ar vēstuļu sūtīšanas funkciju " Pasts PHP. Iespējams, ka vēstule nokļuvusi surogātpastā, tāpēc arī tā ir jāpārbauda.

Ja vēstule saņemta nesaprotamā kodējumā, mainiet rindiņu: "Pārbauda pasta sūtīšanu" ieslēgts "Pārbauda pasta sūtīšanu", "Content-type:text/html;charset=utf-8".

Un atkārtojiet vēstules nosūtīšanu, izmantojot pārlūkprogrammas adreses joslu.

Ja pēc iepriekš minētajām manipulācijām testa vēstule nesasniedz gala adresātu, jums jāsazinās ar hostinga tehnisko atbalstu.

Starp šīs metodes trūkumiem ir vērts atzīmēt, ka šī metode nedarbojas konsekventi. Var būt pārtraukumi e-pasta sūtīšanā mitināšanas pusē.

Šīs metodes galvenais trūkums ir tas, ka visas vēstules, kas nosūtītas uz klientu e-pastiem, neatpazīs pasta pakalpojumi (gmail, mail.ru, yandex.ru), jo tās tika nosūtītas tieši no jūsu vietnes.

Gmail pasta pakalpojums parāda šos burtus ar jautājuma zīmi un parakstu: "Gmail sistēma nevarēja apstiprināt, ka šī vēstule ir nosūtīta no domēna YourDomain. Tas var būt mēstules."

Lai izvairītos no šīs situācijas .

SMTP (Vienkāršais pasta pārsūtīšanas protokols)

SMTP - pasta pārsūtīšanas protokols. Kopumā, lai iestatītu pasta pārraidi, izmantojot šo protokolu, ir nepieciešams pats SMTP serveris. Visizplatītākā iespēja korporatīvā (domēna) pasta yandex.ru izmantošanai kā SMTP serverim ir https://pdd.yandex.ru/.

Pirmkārt, tas ir nepieciešams konts (pasts) yandex, uz kuru pamata tiks izveidoti e-pasti jūsu domēnam: “order@YourDomain” “info@YourDomain”... Galvenais konts nekur nebūs redzams un tiek izmantots tikai domēna e-pastu veidošanai uz tā bāzes turpmāk.

Pēc autorizācijas jūsu personīgajā Yandex kontā tiek izveidots domēna pasts, izmantojot saiti https://pdd.yandex.ru/. Šis ir domēna e-pasts, ko lietotāji redzēs laukā “Sūtītājs”.

Sūtot e-pastus, izmantojot SMTP, ir nepieciešams lauks "Sūtītājs". Izmantojot SMTP, lai nosūtītu vēstules, kombinācija " Domēns" - "e-pasts", tādējādi vēstules atpazīst pasta pakalpojumi.


Starp šīs metodes trūkumiem ir vērts atzīmēt, ka nav iespējams “ielādēt” domēna pasta portretu, jo paši pasta pakalpojumi vēl nenodrošina šo funkcionalitāti.




Tops