Principii de funcționare PHP mail și smtp. Trimiterea de e-mailuri (SMTP vs
Trimiterea de e-mailuri prin SMTP de pe un server local vă permite să testați trimiterea de mesaje de pe un site situat pe mașina locală sau, mai simplu, un server local. Pentru a face acest lucru, puteți utiliza orice serviciu de e-mail Yandex, Google sau mail.ru.
În primul rând, SMTP (Simple Mail Transfer Protocol) este un protocol utilizat pe scară largă protocol de rețea, destinat transmiterii e-mail pe rețelele TCP/IP. Și toate serviciile de e-mail populare au astfel de protocoale.
Odată cu apariția serverelor locale, nu a mai fost nevoie să alegeți un furnizor de găzduire pentru a verifica performanța scripturilor individuale sau a sistemelor cms, cu atât mai puțin să plătiți pentru asta. Este mult mai ușor să testați totul pe un computer și apoi puteți arăta tuturor ceea ce ați „făcut”.
Multe dintre aceste servere au deja încorporate softwareși funcționalitatea necesară pentru a lucra cu mail, trebuie doar să o configurați corect.
Pentru a verifica funcționalitatea unui astfel de e-mail, este necesar minim:
- Puteți utiliza Openserver ca server local.
- Și un script simplu, al cărui șablon poate fi găsit chiar mai jos.
- Puteți utiliza orice server de e-mail.
Trimiterea e-mailului php prin configurarea scriptului SMTP
Un șablon de script simplu care poate fi copiat mai jos sau descărcat de pe sute de site-uri similare, trebuie editat.
Mai întâi trebuie să modificați unele valori în șablonul de script.
la
— schimbați la adresa poștală la care va fi trimis mesajul e-mail.
subiect
— subiectul scrisorii
mesaj
— mesajul în sine sau corpul scrisorii.
Exemplu de script-ul meu:
Puteți, desigur, să extindeți puțin funcționalitatea și să faceți ca scriptul să afișeze un mesaj despre trimiterea e-mailurilor. Deși de fapt serverul SMTP este cel care face trimiterea, iar scriptul generează doar mesajul.
De exemplu, puteți scrie asta:
Toate valorile înlocuite trebuie să fie între ghilimele, altfel scriptul va genera o eroare. După aceasta, puteți salva scriptul în folderul serverului local.
De exemplu: domenii/trimite/index.phpși începeți configurarea trimiterii de e-mail prin SMTP opensserver.
Poșta va ajunge la orice adresă care va fi specificată în script în loc de valoare 'la' , dar acest mail va fi procesat și trimis exact de SMTP-ul care va fi specificat în setările openserver.
- Pornirea serverului
- Deschideți modulul openserver cu setări în meniul „e-mail”.
- Completem toate câmpurile așa cum se arată în imagine, în timp ce înlocuim numele de utilizator, e-mailul expeditorului și parola dintr-o cutie poștală reală pe Yandex.
Salvăm setările și după ce serverul este repornit, puteți accesa scriptul în sine. Din folderul „Site-urile mele”, deschideți folderul „trimitere” în care se află scriptul index.php salvat anterior.
De îndată ce acest script este accesat, informațiile vor apărea într-o nouă fereastră de browser care indică faptul că scriptul s-a finalizat.
După aceasta, ar trebui să vă verificați cutie poştală, a cărui adresă a fost specificată în scenariu, dacă scrisoarea a sosit.
Dacă nu este acolo, înseamnă că ceva nu este configurat corect sau scrisoarea a ajuns în dosarul de spam.
Toate celelalte setări arată similar, dar pentru orice eventualitate Informații suplimentare nu va răni.
Pentru a configura trimiterea de e-mail prin SMTP mail ru, trebuie pur și simplu să înlocuiți parametrii Yandex cu parametrii mail ru.
Și pentru a nu reconstrui de fiecare dată server local, cel mai bine este să configurați diferite profiluri openserver. Cum se face acest lucru este prezentat în tutorialul video.
În acest caz, va fi suficient să încărcați pur și simplu profilul și toate setările care au fost specificate pentru acest profil vor fi disponibile după repornirea serverului. Este un lucru foarte convenabil și funcționează foarte simplu.
Pentru fiecare profil (nu contează deloc cum se va numi), trebuie făcute propriile setări, cu excepția cazului în care, desigur, intenționați să utilizați scripturi, sisteme cms și aplicații cu parametri diferiți.
Dacă nu, atunci vă puteți descurca cu setările implicite.
Cât despre SMTP mail ru, totul este identic aici.
Datele Yandex sunt modificate în date mail ru
Se trimite mail prin smtp google
Pentru a configura trimiterea e-mailurilor prin Google SMTP, este nevoie de puțin efort.
În primul rând, crearea unui profil în Google este mai dificilă decât în alte sisteme Yandex și mail ru
În al doilea rând, sistemul nu va lăsa pur și simplu scrisoarea să treacă, chiar dacă furnizați informațiile dvs. de conectare. Pentru început, ea va trimite o scrisoare care conține toate informațiile necesare despre instrucțiuni suplimentare.
Altfel Pentru Google este configurat exact în același mod. Doar toate datele se schimbă.
Pentru a configura trimiterea e-mailurilor prin alt SMTP, toate datele vor fi aproximativ aceleași.
Dacă totul a funcționat pentru tine și scrisorile au ajuns la destinatarul specificat, atunci totul a fost făcut corect. Ar fi grozav dacă ai împărtăși experiențele tale în comentarii.
Mail PHP
Această funcție este implementată implicit ca trimitere de e-mail. Această funcționalitate nu necesită un server terță parte pentru a redirecționa e-mailul. Pentru a verifica corectitudinea acestei funcții, trebuie doar să creați un fișier test.php în folderul cu site-ul și să plasați următorul cod acolo:
Unde în schimb "E-MAILDESTINATAR" Introduceți e-mailul la care trebuie trimisă scrisoarea.
Loc acest dosar la rădăcina site-ului dvs.
Apoi, introduceți www.YourDomain/test.php în bara de adrese. Dacă o scrisoare este primită la adresa de e-mail specificată, atunci găzduirea dvs. funcționează corect cu funcția de trimitere a scrisorilor " Mail PHP". Este posibil ca scrisoarea să ajungă în spam, așa că trebuie verificată și ea.
Dacă scrisoarea a ajuns într-o codificare de neînțeles, schimbați linia: "Se verifică trimiterea e-mailurilor" pe „Verificarea trimiterii e-mailurilor”, „Content-type:text/html;charset=utf-8”.
Și repetați trimiterea scrisorii prin bara de adrese a browserului dvs.
Dacă după manipulările de mai sus scrisoarea de testare nu ajunge la destinatarul final, trebuie să contactați suportul tehnic de găzduire.
Printre lipsuri această metodă Este de remarcat faptul că lucrarea nu este permanentă această metodă. Pot exista întreruperi în trimiterea e-mailurilor pe partea de găzduire.
Principalul dezavantaj al acestei metode este că toate scrisorile primite de e-mailurile clienților nu vor fi recunoscute de serviciile de e-mail (gmail, mail.ru, yandex.ru) deoarece au fost trimise direct de pe site-ul dvs.
Serviciul de e-mail Gmail afișează aceste scrisori cu un semn de întrebare și semnătura: „Sistemul Gmail nu a putut confirma că această scrisoare a fost trimisă de la domeniul YourDomain. Este posibil să fie spam”.
Pentru a evita această situație .
SMTP (Simple Mail Transfer Protocol)
SMTP - protocol de transfer de e-mail. În total, pentru a configura transmisia de e-mail folosind acest protocol, aveți nevoie de serverul SMTP în sine. Cea mai comună opțiune pentru utilizarea e-mail-ului corporativ (domeniu) yandex.ru ca server SMTP este https://pdd.yandex.ru/.
În primul rând este necesar cont (mail) yandex, pe baza cărora vor fi create e-mailuri pentru domeniul tău: „comanda@Domeniul tău” „info@Domeniul tău”… Contul principal nu va fi vizibil nicăieri și este folosit doar pentru a crea e-mailuri de domeniu pe baza acestuia în viitor.
După autorizarea în contul personal Yandex, este creat un e-mail de domeniu la linkul https://pdd.yandex.ru/. Acesta este e-mailul de domeniu pe care utilizatorii îl vor vedea în câmpul „Expeditor”.
Câmpul „Expeditor” este obligatoriu atunci când trimiteți e-mailuri prin SMTP. Folosind SMTP pentru a trimite scrisori, o combinație de „ Domeniu" - "E-mail", astfel literele sunt recunoscute de serviciile de poștă.
Printre dezavantajele acestei metode, este de remarcat imposibilitatea „încărcării” unui portret de e-mail de domeniu, deoarece serviciile de e-mail în sine nu oferă încă această funcționalitate.
Setări pentru trimiterea e-mailurilor prin SMTP
Există cazuri în care creatorii de site-uri web se confruntă cu o problemă cu e-mailul site-ului folosind CMS-ul Joomla. De exemplu, atunci când trimiteți o scrisoare prin formular feedback Pot apărea următoarele tipuri de erori: „Nu s-a putut instanția funcția de e-mail” sau „Eșuat la apelarea funcției de e-mail”. De asemenea, este posibil să trimiteți o scrisoare fără erori, dar ca urmare aceasta tot nu ajunge la destinatar.
De ce apar aceste probleme cu poșta? Pentru a răspunde la această întrebare, trebuie să mergeți la următoarea cale din panoul de control: „Sistem” - „Setări generale” - fila „Server” - secțiunea „Setări e-mail”.
CMS Joomla oferă trei mecanisme pentru trimiterea de scrisori: PHP Mail, Sendmail și SMTP. În mod implicit, este folosit PHP Mail, care deseori provoacă probleme, care sunt legate în principal de setările găzduirii utilizate.
Pe baza celor de mai sus, concluzionăm: fie apelăm la furnizorul de găzduire pentru ajutor, fie folosim metoda Sendmail sau SMTP de a trimite scrisori. Să ne concentrăm pe utilizarea SMTP.
Setări pentru trimiterea de e-mailuri folosind SMTP
SMTP (Simple Mail Transfer Protocol) este un protocol de rețea utilizat pentru transferul de e-mail. Pentru a utiliza SMTP, trebuie să configurați corect setările serverului de e-mail specific care va fi utilizat.
Pentru a vedea Setări SMTP, trebuie să selectați „SMTP” în „Metoda de trimitere”. Să ne uităm la fiecare setare a serverelor de e-mail populare: Yandex, Mail, Gmail, Rambler și Yahoo.
Setări SMTP pentru Yandex
- E-mail de site: căsuța poștală pe yandex.ru, de exemplu: [email protected]
- Securitate SMTP: SSL
- Port server SMTP: 465
- Nume de utilizator SMTP: conectare la cutia poștală pe yandex.ru, de exemplu: khasanov (fără @yandex.ru)
- Server SMTP: smtp.yandex.ru
Setări SMTP pentru Mail
- E-mail de site: căsuță poștală pe mail.ru, de exemplu: [email protected]
- Expeditorul scrisorii: intrarea care va fi afișată de destinatar în câmpul „Expeditor”.
- Dezactivați corespondența: activat/dezactivat. funcții de corespondență în masă
- Autorizare pe serverul SMTP: Da
- Securitate SMTP: SSL
- Port server SMTP: 465
- Nume de utilizator SMTP: cutie poștală pe mail.ru, de exemplu: [email protected]
- Parola SMTP: parola cutiei poștale
- Server SMTP: smtp.mail.ru
Setări SMTP pentru Gmail
- E-mail de site: căsuța poștală la gmail.com, de exemplu: [email protected]
- Expeditorul scrisorii: intrarea care va fi afișată de destinatar în câmpul „Expeditor”.
- Dezactivați corespondența: activat/dezactivat. funcții de corespondență în masă
- Autorizare pe serverul SMTP: Da
- Securitate SMTP: SSL
- Port server SMTP: 465
- Nume de utilizator SMTP: căsuța poștală gmail.com, de exemplu: [email protected]
- Parola SMTP: parola cutiei poștale
- Server SMTP: smtp.gmail.com
Setări SMTP pentru Rambler
- E-mail de pe site: căsuța poștală la rambler.ru, de exemplu: [email protected]
- Expeditorul scrisorii: intrarea care va fi afișată de destinatar în câmpul „Expeditor”.
PHPMailer este o bibliotecă foarte convenabilă și populară pentru trimiterea de mesaje e-mail de pe site-ul dvs. web. Acest articol descrie setările de bază ale bibliotecii și oferă exemple de cod pentru trimiterea mesajelor. PHPMailer are în sortimentul său poate tot ce ți-ai putea dori de la lucrul cu e-mailul: trimiterea în moduri diferite, prin diferite servere, inclusiv prin smtp, abilitatea de a cripta și semna scrisorile, astfel încât acestea să nu ajungă în spam și multe altele.
Puteți descărca biblioteca PHPMailer de la https://github.com/PHPMailer/PHPMailer (butonul „Clonați sau descărcați”).
În primul rând, mă voi uita la câteva exemple simple pentru a clarifica cum să trimiteți e-mailuri folosind PHPMailer.
Trimiterea de e-mailuri prin funcția mail() folosind PHPMailer
Dacă doriți să trimiteți e-mailuri de la găzduirea dvs. prin intermediul dvs server de mail, atunci totul este destul de simplu și va arăta cam așa:
// Includeți biblioteca PHPMailer, utilizați PHPMailer\PHPMailer\PHPMailer; necesită „PHPMailer/PHPMailer.php”; // Creați o scrisoare $mail = new PHPMailer(); $mail->setFrom(" [email protected]", "Ivan Ivanov"); // de la care (e-mail și nume) $mail->addAddress(" [email protected]", "Vasya Petrov"); // cui (e-mail și nume) $mail->Subject = "Test"; // subiectul scrisorii // text html litere $mail->msgHTML("
Buna ziua!
Aceasta este o scrisoare de testare.
"); // Trimite dacă ($mail->send()) ( echo "Mesaj trimis!"; ) else ( echo "Eroare: " . $mail->ErrorInfo; )După cum puteți vedea, totul este destul de simplu: conectăm biblioteca, completăm de la cine, cui, subiectul și textul scrisorii și o trimitem. Trimiterea de e-mailuri în acest fel va funcționa numai de la adresele de e-mail din domeniul dvs. (cu excepția cazului în care acestea sunt legate de alți e-mailuri).
Trimiterea de e-mailuri prin SMTP folosind PHPMailer folosind exemplul Yandex și Google
De asemenea, puteți trimite o scrisoare printr-un alt expeditor, de exemplu, prin Yandex. Codul va arăta cam așa:
// Includeți biblioteca PHPMailer, utilizați PHPMailer\PHPMailer\PHPMailer; utilizați PHPMailer\PHPMailer\SMTP; necesită „PHPMailer/PHPMailer.php”; necesită „PHPMailer/SMTP.php”; // Creați o scrisoare $mail = new PHPMailer(); $mail->isSMTP(); // Trimitere prin SMTP $mail->Host = "smtp.yandex.ru"; // Adresa serverului SMTP $mail->SMTPAuth = true; // Activează autentificarea SMTP $mail->Username = "login"; // numele tau de utilizator (fara domeniu si @) $mail->Password = "parola"; // parola dvs. $mail->SMTPSecure = "ssl"; // criptare ssl $mail->Port = 465; // portul de conexiune $mail->setFrom(" [email protected]", "Ivan Ivanov"); // de la care $mail->addAddress(" [email protected]", "Vasya Petrov"); // căruia $mail->Subject = "Test"; $mail->msgHTML("
Buna ziua!
Aceasta este o scrisoare de testare.
"); // Trimite dacă ($mail->send()) ( echo "Mesaj trimis!"; ) else ( echo "Eroare: " . $mail->ErrorInfo; )Trimiterea de e-mailuri prin Google are o avertizare: trebuie cont google permite accesul la aplicații care nu sunt de încredere. Pentru a face acest lucru, trebuie să vă conectați la contul dvs. https://myaccount.google.com, să mergeți la securitate, să accesați secțiunea „Aplicații neîncrezătoare care au acces la contul dvs.” și să comutați la „Permis” acolo. La momentul scrierii, această pagină este https://myaccount.google.com/u/0/lesssecureapps.
$mail->Host = "smtp.gmail.com"; // Adresa serverului SMTP $mail->SMTPAuth = true; // Activează autentificarea SMTP $mail->Username = "login"; // numele dvs. de utilizator $mail->Password = "parola"; // parola dvs. $mail->SMTPSecure = "ssl"; // criptare ssl $mail->Port = 465; // port de conectare
Dacă lansați programul pentru trimitere prin smtp pentru prima dată, atunci este recomandabil să îl utilizați suplimentar înainte de a trimite $mail->SMTPDebug = 1; pentru a primi toate mesajele de la client și serverul smtp, de ex. Pe ecran va fi afișat întregul proces de conectare, autorizare etc., ceea ce este foarte util pentru depanarea programului dumneavoastră.
Trimiterea unui e-mail cu un atașament folosind PHPMailer
Totul este destul de simplu aici, trebuie doar să folosești metoda addAttachment. Voi da un exemplu și, în același timp, voi demonstra încă câteva caracteristici suplimentare:
// Includeți biblioteca PHPMailer, utilizați PHPMailer\PHPMailer\PHPMailer; utilizați PHPMailer\PHPMailer\Exception; necesită „PHPMailer/PHPMailer.php”; necesită „PHPMailer/Exception.php”; // Creați o scrisoare $mail = PHPMailer nou; $mail->CharSet = "UTF-8"; $mail->setFrom(" [email protected]", "Ivan Ivanov"); // de la care $mail->addReplyTo(" [email protected]", "Ivan Ivanov"); // adresa de returnare $mail->addAddress(" [email protected]", "Vasya Petrov"); // căruia $mail->Subject = "Test"; // subiect $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // obține "corpul" a scrisorii din fișierul $mail->AltBody = "Scrisoare text simplu" // scrisoarea text simplu dacă clientul nu acceptă html $mail->addAttachment("my_file.txt" // atașează un fișier $mail-); >addAttachment("phpmailer) .jpg" // atașați al doilea fișier // Trimiteți if ($mail->send()) ( echo „Mesaj trimis!”; ) else ( echo „Eroare: „ . $mail- >ErorInfo )
Puteți adăuga mai multe adrese de destinatari utilizând addAddress. Sau, dacă este necesar, puteți, dimpotrivă, să ștergeți toate adresele destinatarilor folosind metoda clearAddresses(). Puteți șterge toate atașamentele folosind clearAttachments().
De asemenea, puteți utiliza AdaugăImagine încorporată pentru a adăuga un atașament (de obicei o imagine) la e-mail, care este destinat să fie folosit în cod html și nu va fi disponibil pentru descărcare. Un exemplu de utilizare a unei imagini într-o scrisoare care nu este disponibilă pentru descărcare:
// Includeți biblioteca PHPMailer, utilizați PHPMailer\PHPMailer\PHPMailer; necesită „PHPMailer/PHPMailer.php”; //Creează o scrisoare $mail = PHPMailer nou; $mail->IsHTML(true); $mail->setFrom(" [email protected]", "Ivan Ivanov"); $mail->addAddress(" [email protected]", "Vasya Petrov"); $mail->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Body = "
Imagine în cod html
"; // Trimite $mail->send();Deci poți trimite litere cu imagini, care sunt doar în corpul scrisorii, dar nu pot fi descărcate ca atașament. Aceste imagini pot fi folosite oriunde în codul html al scrisorii, trebuie doar să specificați cidul imaginii pe care l-ați folosit în AddEmbeddedImage în loc de adresa URL.
Trimiterea de e-mailuri semnate și criptate prin PHPMailer
În mod implicit, PHPMailer criptează toate mesajele trimise. Puteți dezactiva criptarea e-mailurilor numai atunci când trimiteți e-mailuri prin SMTP folosind codul:
$mail->SMTPSecure = false; $mail->SMTPAutoTLS = false;
La semnați scrisoarea cu semnătura DKIM, trebuie să efectuați mai mulți pași:
- Generați chei private și publice pentru domeniul dvs
- Adăugați o înregistrare DNS pentru un domeniu TXT cu o cheie publică
- Configurați semnătura DKIM în PHPMailer înainte de a trimite un e-mail
Acum voi descrie fiecare pas mai detaliat.
Generarea de chei publice și private
Dacă aveți găzduire Linux și aveți acces la Shell, atunci generarea fișierelor cheie este la fel de ușoară ca și decojirea perelor, trebuie să rulați doar 2 comenzi cu drepturile dvs. normale de utilizator:
Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout
Respectiv, test-privat.pemŞi test-public.pem- acestea sunt chei private și publice. Trebuie să le salvați într-un folder care nu va fi accesibil vizitatorilor site-ului sau oricui altcineva, cu excepția dvs.
Dacă nu este posibil să executați comenzi în shell, atunci pentru a genera chei private și publice și a le salva în fișiere, puteți utiliza următorul cod:
$domain = "test.ru"; // domeniul dvs. $privatekeyfile = "test-private.pem"; // numele fișierului în care va fi scrisă cheia privată $publickeyfile = "test-public.pem"; // numele fișierului în care va fi scrisă cheia publică dacă (file_exists($privatekeyfile)) ( echo "
Utilizarea cheilor existente
"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "Creați chei"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file($pk, $spubltaileypkey_de_fișier($spubltaileypkey_de_deschide); ); $publickey = $pubKey["key"]; file_put_contents($publickeyfile, $publickey = file_get_contents);
Cheie privată (păstrați aceasta privată!):
" . $privatekey .""; ecou"
Cheie publică:
" . $publickey ."";
Atenţie! Nu uitați să vă asigurați că folderul în care vor fi salvate fișierele poate fi scris.
Adăugarea unei înregistrări DNS cu o cheie publică
Este necesară o înregistrare DNS pentru ca serverele de e-mail care vor primi scrisorile dumneavoastră să poată verifica semnătura scrisorii citind înregistrarea DNS a domeniului dumneavoastră. De obicei, puteți adăuga o înregistrare DNS în panoul de control al domeniului sau în panoul de control al găzduirii. Dacă nu știți cum să adăugați o intrare, contactați asistența furnizorului dvs. de găzduire.
Trebuie să adăugați o înregistrare DNS ca aceasta:
Nume intrare: mail._domainkey.test.ru. (la sfârșit există un punct ".")
TTL: 3600 (sau oricare va fi implicit)
Tip post: TXT
Sens: v=DKIM1; h=sha256; t=s; p=YOUR_PUBLIC_KEY
În numele intrării test.ru trebuie înlocuit cu numele dvs. de domeniu. Înlocuiți cuvintele „YOUR_PUBLIC_KEY” cu textul pe care l-ați primit la pasul anterior după „Public Key”, fără „-----BEGIN PUBLIC KEY-----” și „-----END PUBLIC KEY- -- --", doar cheia în sine. În acest caz, sunt necesare toate liniile cheii se concatenează într-o singură linie lungă astfel încât să nu existe întreruperi de linie.
Configurarea semnăturii DKIM în PHPMailer și trimiterea unui e-mail
Acum nu mai rămâne decât să faceți câteva setări PHPMailer înainte de a trimite scrisoarea și aceasta va fi semnată. Cred că următorul exemplu va clarifica totul:
// Includeți biblioteca folosiți PHPMailer\PHPMailer\PHPMailer; necesită „PHPMailer/PHPMailer.php”; // Creați o scrisoare $mail = PHPMailer nou; $mail->CharSet = "UTF-8"; $mail->setFrom(" [email protected]"); $mail->addAddress(" [email protected]"); $mail->Subject = "Acesta este un test"; $mail->msgHTML("
Acesta este un test
"); // Configurarea unei semnături DKIM $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // Trimite $ mail- >trimite();Desigur test.ru ar trebui să vă schimbați numele de domeniu și test-privat.pem la calea completă și numele fișierului cheie privată care a fost creat în etapa de generare a cheii.
Acum, e-mailurile tale trimise prin PHPMailer vor fi semnate DKIM cu cheia ta privată.
2019-08-05
Bună, dragă vizitatoare!
Vă rog să mă iertați pentru întârzierea actualizării blogului. Dar există o explicație complet de înțeles pentru asta. La urma urmei, a fost vara, dacha, oaspeți, pădure, apă și multe altele, ceea ce nu mi-a permis să abordez problemele creării unui site web. Dar acum m-am eliberat puțin, oaspeții au plecat și cred că acum voi putea să acord cu siguranță atenția cuvenită acestui lucru.
Așadar, după ce în ultimul articol am conectat mail-ul domeniului nostru la unul dintre serviciile de mail, acum să vedem cum poți trimite email de pe site. Mai mult, în așa fel încât scrisorile noastre să nu ajungă în SPAM, ci să fie livrate în mod fiabil, cu un grad ridicat de probabilitate, destinatarilor noștri.
În general, există o funcție încorporată mail() pentru trimiterea de scrisori în PHP. Dar trebuie remarcat faptul că, în ciuda simplității acestei metode (în acest caz, pentru a trimite scrisori este suficient să specificați o singură linie de cod cu anumiți parametri), utilizarea acestei opțiuni are un dezavantaj semnificativ asociat cu problema SPAM-ului .
Faptul este că filtrele anti-SPAM ale serverelor de e-mail din partea destinatarului nu prea favorizează scrisorile trimise prin funcția mail(). Și în cele mai multe cazuri, astfel de mesaje sunt filtrate sau chiar șterse înainte de a ajunge la destinatar.
Și pentru a elimina cât mai mult posibil astfel de cazuri, se folosește de obicei o altă opțiune, în care scrisorile sunt trimise ca și cum ar fi făcut de un serviciu de poștă terță parte.
Această metodă se numește trimiterea de e-mailuri prin SMTP cu autorizare. Pe care îl vom analiza astăzi folosind exemplul trimiterii unui formular de feedback. Mai mult, pentru aceasta vom folosi biblioteca PHPMailer destul de cunoscută și populară, care vă permite să organizați pur și simplu trimiterea de scrisori prin SMTP.
- Cum vom trimite scrisori de feedback
- Crearea unui formular de feedback
- Instalarea bibliotecii PHPMailer
- Creăm un script pentru trimiterea e-mailurilor prin SMTP
- Se verifică trimiterea e-mailului
- Fișiere sursă site-ul
Cum vom trimite scrisori de feedback
Înainte de a începe munca practica După ce trimitem scrisori de feedback, vom decide mai întâi cum o vom face.
Formularul de feedback este conceput pentru a permite utilizatorului să comunice cu administratorul site-ului și să transmită mesajul acestuia. De obicei, acest formular constă din mai multe câmpuri și un buton „Trimite”.
În principiu, pentru a trimite un e-mail este suficient să folosiți doar câteva câmpuri care oferă suficiente informații despre utilizator și conținutul mesajului, cum ar fi:
- „Nume” - pentru a introduce numele expeditorului mesajului;
- „E-mail” - pentru adresa de e-mail a expeditorului;
- „Subiectul mesajului”;
- „Textul mesajului”.
Deși puteți adăuga altele. De exemplu, un număr de telefon, dacă acest lucru este cu adevărat necesar.
În cazul nostru, astfel de scrisori vor fi trimise la adresa administratorului site-ului dintr-o cutie poștală reală cu autorizare pe serviciul de e-mail la care este conectat domeniul nostru.
Deoarece în articolul anterior ne-am concentrat pe verificarea conexiunii e-mail-ului de domeniu la serviciul Yandex.Mail, vom trimite e-mail pentru această opțiune. Deși acest lucru nu este important. Mai jos veți vedea acele opțiuni care, atunci când sunt modificate, vă vor permite să trimiteți e-mail prin serverul de mail Mail.ru.
Ca o adevărată cutie poștală din care vor fi trimise scrisorile, vom folosi contul unui utilizator de e-mail de domeniu nou creat, să zicem cu adresa [email protected]. Și vom trimite aceste scrisori la căsuța poștală a administratorului [email protected], pe care l-am creat anterior în articolul anterior.
Astfel, expeditorul scrisorii din formularul de feedback va fi cutia poștală [email protected]., iar destinatarul - [email protected]. În acest caz, toate informațiile despre utilizatorul care a trimis mesajul cu conținutul acestuia vor fi transmise în corpul scrisorii trimise.
Crearea unui formular de feedback
După ce ne-am hotărât asupra procedurii de trimitere a scrisorilor, acum vom crea un formular de feedback cu care vom face acest lucru.
Mai jos este codul HTML pentru acest formular, pe care îl vom plasa pe pagina „Contacte” (fișier kontakty.php în directorul articole).