Php pašto ir smtp veikimo principai. Laiškų siuntimas (SMTP vs
Laiškų siuntimas per SMTP iš vietinio serverio leidžia išbandyti žinučių siuntimą iš svetainės, esančios vietiniame kompiuteryje, arba paprasčiau, vietiniame serveryje. Norėdami tai padaryti, galite naudoti bet kurią pašto paslaugą „Yandex“, „Google“ arba „mail.ru“.
Visų pirma, SMTP (Simple Mail Transfer Protocol) yra plačiai naudojamas tinklo protokolas, skirtas perdavimui paštu TCP/IP tinkluose. Ir visos populiarios el. pašto paslaugos turi tokius protokolus.
Atsiradus vietiniams serveriams, nebereikėjo rinktis prieglobos paslaugų teikėjo, norint patikrinti atskirų scenarijų ar cms sistemų veikimą, o tuo labiau už tai mokėti. Daug lengviau viską išbandyti kompiuteryje, tada galėsite visiems parodyti, ką „padarėte“.
Daugelis šių serverių jau turi įtaisytus programinė įranga ir reikalingos funkcijos darbui su paštu, tereikia jį teisingai sukonfigūruoti.
Norint patikrinti tokio pašto funkcionalumą, būtinas minimumas:
- „Openserver“ galite naudoti kaip vietinį serverį.
- Ir paprastas scenarijus, kurio šabloną galite rasti žemiau.
- Galite naudoti bet kurį pašto serverį.
Siunčiamas php paštas per SMTP scenarijaus sąranką
Reikia redaguoti paprastą scenarijaus šabloną, kurį galima nukopijuoti toliau arba atsisiųsti iš šimtų panašių svetainių.
Pirmiausia turite pakeisti kai kurias scenarijaus šablono reikšmes.
į
— pakeisti į pašto adresą, kuriuo bus išsiųstas laiškas.
tema
- laiško tema
žinutę
— pats pranešimas arba laiško turinys.
Mano scenarijaus pavyzdys:
Žinoma, galite šiek tiek išplėsti funkcionalumą ir priversti scenarijų rodyti pranešimą apie laiškų siuntimą. Nors iš tikrųjų tai yra SMTP serveris, kuris siunčia, o scenarijus tik generuoja pranešimą.
Pavyzdžiui, galite parašyti taip:
Visos pakeistos reikšmės turi būti kabutėse, kitaip scenarijus išmes klaidą. Po to scenarijų galite įrašyti į vietinio serverio aplanką.
Pavyzdžiui: domenai/send/index.php ir pradėkite nustatyti laiškų siuntimą per SMTP opensrerver.
Paštas ateis bet kuriuo adresu, kuris bus nurodytas scenarijuje, o ne reikšmės "į" , tačiau šis laiškas bus apdorotas ir išsiųstas būtent tuo SMTP, kuris bus nurodytas openserver nustatymuose.
- Serverio paleidimas
- Atidarykite atvirojo serverio modulį su nustatymais meniu „paštas“.
- Mes užpildome visus laukus, kaip parodyta paveikslėlyje, o vartotojo vardą, siuntėjo el. paštą ir slaptažodį pakeičiame iš tikros pašto dėžutės „Yandex“.
Išsaugome nustatymus ir iš naujo paleidus serverį galite pasiekti patį scenarijų. Aplanke „Mano svetainės“ atidarykite aplanką „siųsti“, kuriame yra anksčiau išsaugotas index.php scenarijus.
Kai tik bus pasiektas šis scenarijus, naujame naršyklės lange pasirodys informacija, nurodanti, kad scenarijus baigtas.
Po to turėtumėte patikrinti savo pašto dėžutę, kurio adresas buvo nurodytas scenarijuje, ar laiškas atėjo.
Jei jo nėra, tai reiškia, kad kažkas neteisingai sukonfigūruota arba laiškas atsidūrė šiukšlių aplanke.
Visi kiti nustatymai atrodo panašiai, bet tik tuo atveju papildomos informacijos nepakenks.
Norėdami nustatyti pašto siuntimą per SMTP mail ru, tiesiog turite pakeisti „Yandex“ parametrus „mail ru“ parametrais.
Ir kad nereikėtų kaskart atstatyti vietinis serveris, geriausia konfigūruoti skirtingus atvirojo serverio profilius. Kaip tai padaryti, parodyta vaizdo pamokoje.
Tokiu atveju pakaks tiesiog įkelti profilį ir visi nustatymai, kurie buvo nurodyti šiam profiliui, bus pasiekiami iš naujo paleidus serverį. Tai labai patogus dalykas ir veikia labai paprastai.
Kiekvienam profiliui (visai nesvarbu, kaip jis bus vadinamas) turi būti nustatyti jo nustatymai, nebent, žinoma, planuojate naudoti scenarijus, cms sistemas ir programas su skirtingais parametrais.
Jei ne, galite tai padaryti naudodami numatytuosius nustatymus.
Kalbant apie SMTP paštą ru, čia viskas yra identiška.
„Yandex“ duomenys pakeisti į pašto ru duomenis
Laiškų siuntimas per smtp google
Norint nustatyti laiškų siuntimą per Google SMTP, reikia šiek tiek pastangų.
Pirma, sukurti profilį „Google“ yra sunkiau nei kitose „Yandex“ ir „mail ru“ sistemose
Antra, sistema tiesiog nepraleis laiško, net jei pateiksite savo prisijungimo informaciją. Pirmiausia ji išsiųs laišką, kuriame bus visa reikalinga informacija apie tolesnius nurodymus.
Priešingu atveju „Google“ jis sukonfigūruotas lygiai taip pat. Keičiasi tik visi duomenys.
Norint sukonfigūruoti pašto siuntimą per kitą SMTP, visi duomenys bus maždaug tokie patys.
Jei jums viskas pavyko ir laiškai pasiekė nurodytą adresatą, vadinasi, viskas buvo padaryta teisingai. Būtų puiku, jei pasidalintumėte savo patirtimi komentaruose.
Paštu PHP
Ši funkcija pagal numatytuosius nustatymus įdiegta kaip el. pašto siuntimas. Šiai funkcijai nereikia trečiosios šalies serverio, kad galėtų persiųsti el. Norėdami patikrinti šios funkcijos teisingumą, aplanke su svetaine tiesiog sukurkite failą test.php ir įdėkite ten šį kodą:
Kur vietoj "EL. PAŠTASGAVĖJAS“ Įveskite el. pašto adresą, kuriuo norite siųsti laišką.
Vieta šį failą jūsų svetainės šaknyje.
Tada adreso juostoje įveskite www.YourDomain/test.php. Jei laiškas gautas nurodytu el. pašto adresu, jūsų priegloba veikia tinkamai su laiškų siuntimo funkcija " paštu PHP. Gali būti, kad laiškas pateko į šiukšlių dėžę, todėl jį taip pat reikia patikrinti.
Jei laiškas gautas nesuprantama koduote, pakeiskite eilutę: "Tikrinamas laiškų siuntimas"įjungta „Tikrinamas laiškų siuntimas“, „Content-type:text/html;charset=utf-8“.
Ir pakartokite laiško siuntimą per naršyklės adreso juostą.
Jei po aukščiau nurodytų manipuliacijų bandomasis laiškas nepasiekia galutinio gavėjo, turite susisiekti su prieglobos technine pagalba.
Tarp trūkumų šis metodas Verta paminėti, kad darbas nėra nuolatinis šis metodas. Gali būti trikdžių siunčiant el. laiškus prieglobos pusėje.
Pagrindinis šio metodo trūkumas yra tas, kad visų laiškų, siunčiamų į klientų el. laiškus, pašto paslaugos (gmail, mail.ru, yandex.ru) neatpažins, nes jie buvo išsiųsti tiesiai iš jūsų svetainės.
„Gmail“ pašto paslauga rodo šias raides su klaustuku ir parašu: „Gmail sistema negalėjo patvirtinti, kad šis laiškas buvo išsiųstas iš domeno YourDomain. Tai gali būti šlamštas.
Norėdami išvengti šios situacijos .
SMTP (paprastas pašto perdavimo protokolas)
SMTP – pašto perdavimo protokolas. Iš viso, norint nustatyti pašto perdavimą naudojant šį protokolą, jums reikia paties SMTP serverio. Dažniausias įmonės (domeno) pašto yandex.ru kaip SMTP serverio naudojimo būdas yra https://pdd.yandex.ru/.
Visų pirma tai būtina paskyra (paštas) yandex, kurių pagrindu bus kuriami laiškai Jūsų domenui: “užsakymas@JūsųDomenas” “info@YourDomain”... Pagrindinė paskyra niekur nebus matoma ir naudojama tik kuriant domeno laiškus pagal ją ateityje.
Gavus leidimą asmeninėje „Yandex“ paskyroje, nuorodoje https://pdd.yandex.ru/ sukuriamas domeno paštas. Tai domeno el. pašto adresas, kurį vartotojai matys lauke „Siuntėjas“.
Laukas „Siuntėjas“ yra būtinas siunčiant el. laiškus per SMTP. SMTP naudojimas laiškams siųsti, derinys " Domenas“ – „El. paštas“, todėl laiškus atpažįsta pašto tarnybos.
Tarp šio metodo trūkumų verta paminėti, kad neįmanoma „įkelti“ domeno pašto portreto, nes pačios pašto paslaugos dar neteikia šios funkcijos.
Laiškų siuntimo SMTP nustatymai
Yra atvejų, kai svetainių kūrėjai susiduria su svetainės el. pašto problema naudojant Joomla TVS. Pavyzdžiui, siunčiant laišką per formą atsiliepimai Gali atsirasti šių tipų klaidų: „Nepavyko sukurti pašto funkcijos“ arba „Nepavyko paskambinti paštu funkcija“. Taip pat galima išsiųsti laišką be klaidų, tačiau dėl to jis vis tiek nepasiekia adresato.
Kodėl šios problemos kyla naudojant paštą? Norėdami atsakyti į šį klausimą, valdymo skydelyje turite eiti šiuo keliu: "Sistema" - "Bendrieji nustatymai" - "Serveris" skirtukas - "Pašto nustatymai".
CMS Joomla pateikia tris laiškų siuntimo mechanizmus: PHP Mail, Sendmail ir SMTP. Pagal numatytuosius nustatymus naudojamas PHP Mail, kuris dažnai sukelia problemų, kurios daugiausia susijusios su naudojamo prieglobos nustatymais.
Remdamiesi tuo, kas išdėstyta, darome išvadą: arba kreipiamės pagalbos į prieglobos paslaugų teikėją, arba laiškų siuntimui naudojame Sendmail arba SMTP metodą. Sutelkime dėmesį į SMTP naudojimą.
Laiškų siuntimo naudojant SMTP nustatymai
SMTP (Simple Mail Transfer Protocol) yra tinklo protokolas, naudojamas el. Norėdami naudoti SMTP, turite teisingai sukonfigūruoti konkretaus pašto serverio, kuris bus naudojamas, nustatymus.
Norėdami pamatyti SMTP nustatymai, skiltyje „Siuntimo būdas“ turite pasirinkti „SMTP“. Pažvelkime į kiekvieną populiarių pašto serverių nustatymą: „Yandex“, „Mail“, „Gmail“, „Rambler“ ir „Yahoo“.
„Yandex“ SMTP nustatymai
- Svetainės el. paštas: pašto dėžutė yandex.ru, pavyzdžiui: [apsaugotas el. paštas]
- SMTP sauga: SSL
- SMTP serverio prievadas: 465
- SMTP vartotojo vardas: pašto dėžutės prisijungimas yandex.ru, pavyzdžiui: khasanov (be @yandex.ru)
- SMTP serveris: smtp.yandex.ru
Pašto SMTP nustatymai
- Svetainės el. paštas: pašto dėžutė mail.ru, pavyzdžiui: [apsaugotas el. paštas]
- Laiško siuntėjas: įrašas, kurį gavėjas rodys laukelyje „Siuntėjas“.
- Išjungti siuntimą paštu: įjungti / išjungti. masinio pašto siuntimo funkcijos
- Autorizacija SMTP serveryje: Taip
- SMTP sauga: SSL
- SMTP serverio prievadas: 465
- SMTP vartotojo vardas: pašto dėžutė mail.ru, pavyzdžiui: [apsaugotas el. paštas]
- SMTP slaptažodis: pašto dėžutės slaptažodis
- SMTP serveris: smtp.mail.ru
SMTP nustatymai, skirti „Gmail“.
- Svetainės el. paštas: pašto dėžutė adresu gmail.com, pavyzdžiui: [apsaugotas el. paštas]
- Laiško siuntėjas: įrašas, kurį gavėjas rodys laukelyje „Siuntėjas“.
- Išjungti siuntimą paštu: įjungti / išjungti. masinio pašto siuntimo funkcijos
- Autorizacija SMTP serveryje: Taip
- SMTP sauga: SSL
- SMTP serverio prievadas: 465
- SMTP vartotojo vardas: gmail.com pašto dėžutė, pavyzdžiui: [apsaugotas el. paštas]
- SMTP slaptažodis: pašto dėžutės slaptažodis
- SMTP serveris: smtp.gmail.com
„Rambler“ SMTP nustatymai
- Svetainės el. paštas: pašto dėžutė adresu rambler.ru, pavyzdžiui: [apsaugotas el. paštas]
- Laiško siuntėjas: įrašas, kurį gavėjas rodys laukelyje „Siuntėjas“.
PHPMailer yra labai patogi ir populiari biblioteka el. pašto žinutėms iš jūsų svetainės siųsti. Šiame straipsnyje aprašomi pagrindiniai bibliotekos parametrai ir pateikiami pranešimų siuntimo kodų pavyzdžiai. „PHPMailer“ asortimente yra turbūt visko, ko galite norėti dirbant su paštu: siuntimą įvairiais būdais, per skirtingus serverius, įskaitant per smtp, galimybė užšifruoti ir pasirašyti jūsų laiškus, kad jie nepatektų į šlamštą ir dar daugiau.
PHPMailer biblioteką galite atsisiųsti iš https://github.com/PHPMailer/PHPMailer (mygtukas „Klonuoti arba atsisiųsti“).
Pirmiausia pažiūrėsiu į porą paprasti pavyzdžiai kad būtų aišku, kaip siųsti el. laiškus naudojant PHPMailer.
Laiškų siuntimas per mail() funkciją naudojant PHPMailer
Jei norite siųsti el. laiškus iš savo prieglobos per savo pašto serveris, tada viskas yra gana paprasta ir atrodys maždaug taip:
// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; // Sukurti laišką $mail = new PHPMailer(); $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // kieno (el. pašto adresas ir vardas) $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam (el. paštas ir vardas) $mail->Subject = "Test"; // laiško tema // html tekstas raidės $mail->msgHTML("
Sveiki!
Tai yra bandomasis laiškas.
"); // Siųsti if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail->ErrorInfo; )Kaip matote, viskas gana paprasta: pajungiame biblioteką, užpildome iš ko, kam, laiško temą, tekstą ir išsiunčiame. Tokiu būdu el. laiškų siuntimas veiks tik iš jūsų domene esančių el. pašto adresų (nebent jie susieti su kitais el. pašto adresais).
Laiškų siuntimas per SMTP naudojant PHPMailer naudojant Yandex ir Google pavyzdį
Taip pat galite išsiųsti laišką per kitą pašto dėžutę, pavyzdžiui, per Yandex. Kodas atrodys maždaug taip:
// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; naudoti PHPMailer\PHPMailer\SMTP; reikalauti "PHPMailer/PHPMailer.php"; reikalauti "PHPMailer/SMTP.php"; // Sukurti laišką $mail = new PHPMailer(); $paštas->isSMTP(); // Siuntimas per SMTP $mail->Host = "smtp.yandex.ru"; // SMTP serverio adresas $mail->SMTPAuth = true; // Įjungti SMTP autentifikavimą $mail->Vartotojo vardas = "prisijungti"; // jūsų vartotojo vardas (be domeno ir @) $mail->Password = "slaptažodis"; // jūsų slaptažodis $mail->SMTPSecure = "ssl"; // ssl šifravimas $ paštas->Privadas = 465; // ryšio prievadas $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // iš kurio $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam $mail->Subject = "Test"; $mail->msgHTML("
Sveiki!
Tai yra bandomasis laiškas.
"); // Siųsti if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail->ErrorInfo; )Laiškų siuntimas per Google turi vieną įspėjimą: reikia google paskyra leisti prieiti prie nepatikimų programų. Norėdami tai padaryti, eikite į savo paskyrą https://myaccount.google.com, eikite į sauga, eikite į skyrių „Nepatikimos programos, turinčios prieigą prie jūsų paskyros“ ir ten perjunkite į „Leidžiama“. Rašymo metu šis puslapis yra https://myaccount.google.com/u/0/lesssecureapps.
$mail->Host = "smtp.gmail.com"; // SMTP serverio adresas $mail->SMTPAuth = true; // Įjungti SMTP autentifikavimą $mail->Vartotojo vardas = "prisijungti"; // jūsų vartotojo vardas $mail->Slaptažodis = "slaptažodis"; // jūsų slaptažodis $mail->SMTPSecure = "ssl"; // ssl šifravimas $ paštas->Privadas = 465; // ryšio prievadas
Jei pirmą kartą naudojate programą, skirtą siųsti per smtp, patartina naudoti papildomai prieš siunčiant $paštas->SMTPDebug = 1; gauti visus pranešimus iš kliento ir smtp serverio, t.y. Visas prisijungimo, autorizacijos ir tt procesas bus rodomas ekrane, o tai labai naudinga derinant programą.
Laiško su priedu siuntimas naudojant PHPMailer
Čia viskas gana paprasta, tereikia naudoti metodą pridėti Priedas. Pateiksiu pavyzdį ir tuo pačiu pademonstruosiu dar keletą papildomos funkcijos:
// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; naudoti PHPMailer\PHPMailer\Exception; reikalauti "PHPMailer/PHPMailer.php"; reikalauti "PHPMailer/Exception.php"; // Sukurti laišką $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // iš kurio $mail->addReplyTo(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // grąžinimo adresas $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam $mail->Subject = "Test"; // tema $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // gauti "body" laiško iš failo $mail->AltBody = "Paprasto teksto laiškas" // paprasto teksto raidė, jei klientas nepalaiko html $mail->addAttachment("mano_failas.txt" // pridėti vieną failą $mail-); >addAttachment("phpmailer) .jpg"); // pridėti antrą failą // Send if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail- > ErrorInfo;
Galite pridėti kelis gavėjų adresus naudodami addAddress. Arba, jei reikia, galite, priešingai, išvalyti visus gavėjų adresus naudodami šį metodą ClearAddresses (). Galite išvalyti visus priedus naudodami išvalyti priedus ().
Taip pat galite naudoti AddEmbeddedImage laiško pridėti priedą (dažniausiai paveikslėlį), kuris skirtas naudoti html kode ir kurio nebus galima atsisiųsti. Paveikslėlio naudojimo laiške, kurio negalima atsisiųsti, pavyzdys:
// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; //Sukurti laišką $mail = new PHPMailer; $paštas->IsHTML(tiesa); $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); $paštas->adresas(" [apsaugotas el. paštas]", "Vasya Petrov"); $paštas->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $paštas->Body = "
Vaizdas html kode
"; // Siųsti $mail-> send();Taigi galite siųsti raidės su vaizdais, kurie yra tik laiško tekste, bet negali būti atsisiunčiami kaip priedas. Šiuos vaizdus galima naudoti bet kurioje laiško html kode, tereikia nurodyti vaizdo cid, kurį naudojote AddEmbeddedImage, o ne URL adresą.
Pasirašytų ir užšifruotų laiškų siuntimas per PHPMailer
Pagal numatytuosius nustatymus PHPMailer užšifruoja visus išsiųstus pranešimus. El. laiškų šifravimą galite išjungti tik siųsdami el. laiškus per SMTP naudodami kodą:
$paštas->SMTPSecure = false; $paštas->SMTPAutoTLS = false;
Į laišką pasirašyti DKIM parašu, turite atlikti kelis veiksmus:
- Generuokite privačius ir viešuosius savo domeno raktus
- Pridėkite DNS įrašą TXT domenui su viešuoju raktu
- Prieš siųsdami el. laišką, sukonfigūruokite DKIM parašą PHPMailer
Dabar kiekvieną žingsnį aprašysiu šiek tiek išsamiau.
Privačių ir viešųjų raktų generavimas
Jei turite „Linux“ prieglobą ir turite prieigą prie „Shell“, tada sugeneruoti pagrindinius failus yra taip pat paprasta, kaip išlukštenti kriaušes, su įprastomis vartotojo teisėmis paleisti tik 2 komandas:
Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout
Atitinkamai, testas-privatus.pem Ir test-public.pem- tai privatūs ir viešieji raktai. Turite juos išsaugoti aplanke, kurio negalės pasiekti svetainės lankytojai ar kas nors kitas, išskyrus jus.
Jei apvalkale neįmanoma vykdyti komandų, tada norėdami sugeneruoti privačius ir viešuosius raktus ir išsaugoti juos failuose, galite naudoti šį kodą:
$domenas = "test.ru"; // jūsų domenas $privatekeyfile = "test-private.pem"; // failo, kuriame bus įrašytas privatus raktas, pavadinimas $publickeyfile = "test-public.pem"; // failo, kuriame bus įrašytas viešasis raktas pavadinimas if (file_exists($privatekeyfile)) ( echo "
Naudojant esamus raktus
"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "Sukurti raktus"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file, $keyget_Keyple); ils ($ pk ; $viešasis raktas = $pubKey["raktas"];
Privatus raktas (išlikti privatus!):
". $privatekey.""; aidas"
Viešasis raktas:
". $viešasis raktas."";
Dėmesio! Nepamirškite įsitikinti, kad aplankas, kuriame bus saugomi failai, yra įrašomas.
DNS įrašo pridėjimas su viešuoju raktu
DNS įrašas reikalingas, kad pašto serveriai, kurie gaus jūsų laiškus, galėtų patikrinti laiško parašą skaitydami jūsų domeno DNS įrašą. Paprastai galite pridėti DNS įrašą savo domeno valdymo skydelyje arba prieglobos valdymo skydelyje. Jei nežinote, kaip pridėti įrašą, susisiekite su prieglobos paslaugų teikėjo palaikymo komanda.
Turite pridėti tokį DNS įrašą:
Įrašo pavadinimas: mail._domainkey.test.ru. (pabaigoje yra taškas ".")
TTL: 3600 (arba kuris bus numatytasis)
Įrašo tipas: TXT
Reikšmė: v=DKIM1; h = sha256; t=s; p=YOUR_PUBLIC_KEY
Įrašo pavadinime test.ru turi būti pakeistas jūsų domeno vardu. Pakeičiate žodžius „YOUR_PUBLIC_KEY“ tekstu, kurį gavote atlikdami ankstesnį veiksmą po „Viešasis raktas“, be „-----BEGIN VIEŠAS RAKTAS-----“ ir „-----END VIEŠAS RAKTAS- -- --“, tik pats raktas. Šiuo atveju reikalingos visos pagrindinės eilutės sujungti į vieną ilgą eilutę kad nebūtų eilučių pertraukų.
DKIM parašo nustatymas PHPMailer ir el
Dabar belieka prieš siunčiant laišką padaryti kelis PHPMailer nustatymus ir jis bus pasirašytas. Manau, kad šis pavyzdys viską paaiškins:
// Įtraukti biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; // Sukurti laišką $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [apsaugotas el. paštas]"); $paštas->adresas(" [apsaugotas el. paštas]"); $mail->Subject = "Tai bandymas"; $mail->msgHTML("
Tai yra testas
"); // DKIM parašo nustatymas $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "paštas"; // Siųsti $ paštas- >siųsti();Žinoma test.ru turėtumėte pakeisti savo domeno vardą ir testas-privatus.pemį visą privataus rakto failo kelią ir pavadinimą, kuris buvo sukurtas rakto generavimo etape.
Dabar jūsų el. laiškai, išsiųsti per PHPMailer, bus pasirašyti DKIM su jūsų privačiu raktu.
2019-08-05
Sveiki, mielas lankytojau!
Prašau atleisti už vėlavimą atnaujinti tinklaraštį. Tačiau tam yra visiškai suprantamas paaiškinimas. Juk vasara, vasarnamis, svečiai, miškas, vanduo ir daug daugiau, kas neleido spręsti tinklalapio kūrimo klausimų. Bet dabar šiek tiek išsilaisvinau, svečiai išvažiavo ir manau, kad dabar tikrai galėsiu tam skirti deramą dėmesį.
Taigi, kai paskutiniame straipsnyje sujungėme savo domeno paštą su viena iš pašto paslaugų, dabar pažiūrėkime, kaip galite siųsti el. laiškus iš svetainės. Be to, tokiu būdu, kad mūsų laiškai nepatektų į SPAM, o būtų patikimai, su didele tikimybe, pristatyti mūsų gavėjams.
Apskritai, yra įmontuota mail() funkcija, skirta siųsti laiškus PHP. Tačiau reikia pažymėti, kad nepaisant šio metodo paprastumo (šiuo atveju norint išsiųsti laiškus pakanka nurodyti tik vieną kodo eilutę su tam tikrais parametrais), šios parinkties naudojimas turi reikšmingą trūkumą, susijusį su SPAM problema. .
Faktas yra tas, kad gavėjo pusėje esantys pašto serverių anti-SPAM filtrai nelabai palankiai vertina laiškus, siunčiamus per mail() funkciją. Ir dažniausiai tokie pranešimai filtruojami ar net ištrinami dar nepasiekus adresato.
O norint kuo labiau pašalinti tokius atvejus, dažniausiai naudojamas kitas variantas, kai laiškai siunčiami taip, lyg tai būtų daryta trečiosios šalies pašto tarnybos.
Šis metodas vadinamas laiškų siuntimu per SMTP su leidimu. Į kurį šiandien pažvelgsime naudodamiesi atsiliepimų formos siuntimo pavyzdžiu. Be to, tam naudosime gana gerai žinomą ir populiarią PHPMailer biblioteką, kuri leidžia gana paprastai organizuoti laiškų siuntimą per SMTP.
- Kaip išsiųsime atsiliepimų laiškus
- Atsiliepimo formos kūrimas
- PHPMailer bibliotekos įdiegimas
- Sukuriame scenarijų laiškų siuntimui per SMTP
- El. laiškų siuntimo tikrinimas
- Šaltinio failai svetainę
Kaip išsiųsime atsiliepimų laiškus
Prieš pradėdami praktinis darbas Išsiuntę atsiliepimų laiškus, pirmiausia nuspręsime, kaip tai darysime.
Atsiliepimų forma sukurta tam, kad vartotojas galėtų bendrauti su svetainės administratoriumi, kad perteiktų savo pranešimą. Paprastai šią formą sudaro keli laukai ir mygtukas „Pateikti“.
Iš esmės, norint išsiųsti el. laišką, pakanka naudoti tik kelis laukus, kuriuose pateikiama pakankamai informacijos apie vartotoją ir pranešimo turinį, pavyzdžiui:
- „Vardas“ – įvesti žinutės siuntėjo vardą;
- „El. paštas“ – siuntėjo elektroninio pašto adresui;
- "Pranešimo tema";
- "Pranešimo tekstas".
Nors galite pridėti kitų. Pavyzdžiui, telefono numeris, jei to tikrai reikia.
Mūsų atveju tokie laiškai bus siunčiami svetainės administratoriaus adresu iš tikros pašto dėžutės su įgaliojimu pašto tarnyboje, prie kurios prijungtas mūsų domenas.
Kadangi ankstesniame straipsnyje mes sutelkėme dėmesį į domeno pašto ryšio su „Yandex.Mail“ paslauga patikrinimą, mes išsiųsime el. laišką šiai parinkčiai. Nors tai nėra svarbu. Žemiau matysite tas parinktis, kurias pakeitus galėsite siųsti el. laiškus per Mail.ru pašto serverį.
Kaip tikrą pašto dėžutę, iš kurios bus siunčiami laiškai, naudosime naujai sukurto domeno pašto vartotojo paskyrą, tarkime su adresu [apsaugotas el. paštas]. Ir šiuos laiškus išsiųsime į administratoriaus pašto dėžutę [apsaugotas el. paštas], kurį anksčiau sukūrėme ankstesniame straipsnyje.
Taigi, laiško siuntėjas iš atsiliepimų formos bus pašto dėžutė [apsaugotas el. paštas]., o gavėjas - [apsaugotas el. paštas]. Tokiu atveju visa informacija apie vartotoją, atsiuntusį pranešimą su jos turiniu, bus perduota išsiųsto laiško tekste.
Atsiliepimo formos kūrimas
Apsisprendę dėl laiškų siuntimo tvarkos, dabar sukursime atsiliepimų formą, su kuria tai padarysime.
Žemiau yra šios formos HTML kodas, kurį patalpinsime puslapyje „Kontaktai“ (failas kontakty.php straipsnių kataloge).