Parimet e funksionimit të postës Php dhe smtp. Dërgimi i emaileve (SMTP vs
Dërgimi i postës përmes SMTP nga një server lokal ju lejon të testoni dërgimin e mesazheve nga një sajt i vendosur në makinën lokale, ose më thjesht, një server lokal. Për ta bërë këtë, mund të përdorni çdo shërbim postar Yandex, Google ose mail.ru.
Para së gjithash, SMTP (Simple Mail Transfer Protocol) përdoret gjerësisht protokolli i rrjetit, i destinuar për transmetim email në rrjetet TCP/IP. Dhe të gjitha shërbimet e njohura të postës elektronike kanë protokolle të tilla.
Me ardhjen e serverëve lokalë, nuk kishte më nevojë të zgjidhni një ofrues pritës për të kontrolluar performancën e skripteve individuale ose sistemeve cms, aq më pak të paguani për të. Është shumë më e lehtë të testosh gjithçka në një kompjuter dhe më pas mund t'u tregosh të gjithëve se çfarë ke "bërë".
Shumë prej këtyre serverëve tashmë kanë të integruar software dhe funksionalitetin e nevojshëm për të punuar me postën, thjesht duhet ta konfiguroni saktë.
Për të kontrolluar funksionalitetin e një poste të tillë, kërkohet minimumi:
- Ju mund të përdorni Openserver si një server lokal.
- Dhe një skenar i thjeshtë, shablloni i të cilit mund të gjendet pak më poshtë.
- Ju mund të përdorni çdo server të postës.
Dërgimi i postës php përmes konfigurimit të skriptit SMTP
Një shabllon i thjeshtë skripti që mund të kopjohet më poshtë, ose të shkarkohet nga qindra sajte të ngjashme, duhet të modifikohet.
Së pari ju duhet të ndryshoni disa vlera në shabllonin e skenarit.
te
— ndryshoni në adresën postare ku do të dërgohet mesazhi i postës.
subjekt
- tema e letrës
mesazh
— vetë mesazhi ose trupi i letrës.
Shembull i skenarit tim:
Sigurisht, mund ta zgjeroni pak funksionalitetin dhe ta bëni skriptin të shfaqë një mesazh në lidhje me dërgimin e postës. Edhe pse në fakt është serveri SMTP ai që bën dërgimin, dhe skripti gjeneron vetëm mesazhin.
Për shembull, mund të shkruani këtë:
Të gjitha vlerat e zëvendësuara duhet të jenë në thonjëza, përndryshe skripti do të shkaktojë një gabim. Pas kësaj, mund ta ruani skriptin në dosjen e serverit lokal.
Për shembull: domains/send/index.php dhe filloni të konfiguroni dërgimin e postës përmes SMTP opensrerver.
Posta do të arrijë në çdo adresë që do të specifikohet në skript në vend të vlerës 'te' , por kjo postë do të përpunohet dhe dërgohet pikërisht nga SMTP që do të specifikohet në cilësimet e serverit të hapur.
- Nisja e serverit
- Hapni modulin e serverit të hapur me cilësimet në menynë "mail".
- Ne plotësojmë të gjitha fushat siç tregohet në foto, ndërsa zëvendësojmë emrin e përdoruesit, postën elektronike të dërguesit dhe fjalëkalimin nga një kuti postare e vërtetë në Yandex.
Ne i ruajmë cilësimet dhe pasi serveri të riniset, mund të përdorni vetë skriptin. Nga dosja "My Sites", hapni dosjen "send" në të cilën ndodhet skripti i ruajtur më parë index.php.
Sapo të arrihet ky skript, informacioni do të shfaqet në një dritare të re të shfletuesit që tregon se skripti ka përfunduar.
Pas kësaj ju duhet të kontrolloni tuaj kuti postare, adresa e të cilit ishte e specifikuar në skenar, nëse letra mbërriti.
Nëse nuk është aty, do të thotë që diçka nuk është konfiguruar siç duhet, ose letra ka përfunduar në dosjen e postës së padëshiruar.
Të gjitha cilësimet e tjera duken të ngjashme, por për çdo rast informacione shtesë nuk do të dëmtojë.
Për të konfiguruar dërgimin e postës përmes postës SMTP ru, thjesht duhet të zëvendësoni parametrat Yandex me parametrat e postës ru.
Dhe për të mos rindërtuar çdo herë server lokal, është më mirë të konfiguroni profile të ndryshme të serverit të hapur. Si ta bëni këtë tregohet në tutorialin e videos.
Në këtë rast, do të mjaftojë thjesht të ngarkoni profilin dhe të gjitha cilësimet që u specifikuan për këtë profil do të jenë të disponueshme pas rinisjes së serverit. Është një gjë shumë e përshtatshme dhe funksionon shumë thjeshtë.
Për çdo profil (nuk ka fare rëndësi se si do të quhet), duhet të bëhen cilësimet e veta, përveç nëse, sigurisht, planifikoni të përdorni skriptet, sistemet cms dhe aplikacionet me parametra të ndryshëm.
Nëse jo, atëherë mund t'ia dilni me cilësimet e paracaktuara.
Sa i përket postës SMTP ru, gjithçka është identike këtu.
Të dhënat e Yandex ndryshohen në të dhënat e postës ru
Dërgimi i postës përmes smtp google
Për të konfiguruar dërgimin e postës përmes Google SMTP, duhet pak përpjekje.
Së pari, krijimi i një profili në Google është më i vështirë sesa në sistemet e tjera Yandex dhe mail ru
Së dyti, sistemi thjesht nuk do ta lejojë letrën të kalojë, edhe nëse jepni informacionin tuaj të hyrjes. Për të filluar, ajo do të dërgojë një letër që përmban të gjithë informacionin e nevojshëm në lidhje me udhëzimet e mëtejshme.
Përndryshe Për Google është konfiguruar saktësisht në të njëjtën mënyrë. Ndryshojnë vetëm të gjitha të dhënat.
Për të konfiguruar dërgimin e postës përmes SMTP tjetër, të gjitha të dhënat do të jenë afërsisht të njëjta.
Nëse gjithçka funksionoi për ju dhe letrat arritën te adresuesi i specifikuar, atëherë gjithçka u bë në mënyrë korrekte. Do të ishte mirë nëse ndani përvojat tuaja në komente.
Dërgo PHP
Ky funksion zbatohet si parazgjedhje si dërgim i postës elektronike. Ky funksionalitet nuk kërkon një server të palës së tretë për të përcjellë Email. Për të kontrolluar korrektësinë e këtij funksioni, thjesht krijoni një skedar test.php në dosjen me sitin dhe vendosni kodin e mëposhtëm atje:
Ku në vend të kësaj "EMAILMARRËSI" Shkruani emailin në të cilin duhet të dërgohet letra.
Vendi këtë skedar në rrënjë të faqes tuaj.
Më pas, futni www.YourDomain/test.php në shiritin e adresave. Nëse një letër merret në adresën e specifikuar të emailit, atëherë pritja juaj funksionon saktë me funksionin e dërgimit të letrave " Postoni PHP". Është e mundur që letra të ketë përfunduar në spam, kështu që duhet të kontrollohet gjithashtu.
Nëse letra mbërriti në një kodim të pakuptueshëm, ndryshoni rreshtin: "Kontrollimi i dërgimit të postës" në "Po kontrollon dërgimin e postës", "Content-type:text/html;charset=utf-8".
Dhe përsërisni dërgimin e letrës përmes shiritit të adresave të shfletuesit tuaj.
Nëse pas manipulimeve të mësipërme letra e testimit nuk arrin te marrësi përfundimtar, duhet të kontaktoni mbështetjen teknike të pritjes.
Ndër të metat këtë metodë Vlen të theksohet se puna nuk është e përhershme këtë metodë. Mund të ketë ndërprerje në dërgimin e emaileve në anën e pritjes.
Disavantazhi kryesor i kësaj metode është se të gjitha letrat e marra nga emailet e klientëve nuk do të njihen nga shërbimet e postës (gmail, mail.ru, yandex.ru) pasi ato janë dërguar direkt nga faqja juaj e internetit.
Shërbimi i postës Gmail shfaq këto shkronja me një pikëpyetje dhe nënshkrimin: "Sistemi Gmail nuk ishte në gjendje të konfirmonte që kjo letër ishte dërguar nga domeni YourDomain."
Për të shmangur këtë situatë .
SMTP (Simple Mail Transfer Protocol)
SMTP - protokolli i transferimit të postës. Në total, për të vendosur transmetimin e postës duke përdorur këtë protokoll, ju nevojitet vetë serveri SMTP. Opsioni më i zakonshëm për përdorimin e postës së korporatës (domain) yandex.ru si një server SMTP është https://pdd.yandex.ru/.
Para së gjithash është e nevojshme llogari (postë) yandex, mbi bazën e të cilave do të krijohen emailet për domenin tuaj: “order@YourDomain” “info@YourDomain”… Llogaria kryesore nuk do të jetë e dukshme askund dhe përdoret vetëm për të krijuar emaile domeni bazuar në të në të ardhmen.
Pas autorizimit në llogarinë tuaj personale Yandex, krijohet një postë domeni në lidhjen https://pdd.yandex.ru/. Ky është emaili i domenit që përdoruesit do të shohin në fushën "Dërguesi".
Fusha "Dërguesi" kërkohet kur dërgoni email përmes SMTP. Përdorimi i SMTP për të dërguar letra, një kombinim i " Domeni" - "email", në këtë mënyrë letrat njihen nga shërbimet e postës.
Ndër disavantazhet e kësaj metode, vlen të përmendet pamundësia e "ngarkimit" të një portreti të postës domeni, pasi vetë shërbimet e postës nuk e ofrojnë ende këtë funksionalitet.
Cilësimet për dërgimin e postës përmes SMTP
Ka raste kur ndërtuesit e faqeve të internetit përballen me një problem me emailin e faqes së internetit duke përdorur Joomla CMS. Për shembull, kur dërgoni një letër përmes formularit reagimet Llojet e mëposhtme të gabimeve mund të shfaqen: "Funksioni i postës nuk mund të instantohej" ose "Thirrja e funksionit të postës dështoi". Është gjithashtu e mundur të dërgoni një letër pa gabime, por si rezultat ende nuk arrin tek adresuesi.
Pse ndodhin këto probleme me postën? Për t'iu përgjigjur kësaj pyetjeje, duhet të shkoni në shtegun e mëposhtëm në panelin e kontrollit: "Sistemi" - "Cilësimet e përgjithshme" - skeda "Server" - seksioni "Cilësimet e postës".
CMS Joomla ofron tre mekanizma për dërgimin e letrave: PHP Mail, Sendmail dhe SMTP. Si parazgjedhje, përdoret PHP Mail, i cili shpesh shkakton probleme, të cilat lidhen kryesisht me cilësimet e hostit të përdorur.
Bazuar në sa më sipër, konkludojmë: ose i drejtohemi ofruesit të pritjes për ndihmë, ose përdorim metodën Sendmail ose SMTP për dërgimin e letrave. Le të përqendrohemi në përdorimin e SMTP.
Cilësimet për dërgimin e postës duke përdorur SMTP
SMTP (Simple Mail Transfer Protocol) është një protokoll rrjeti që përdoret për të transferuar email. Për të përdorur SMTP, duhet të konfiguroni saktë cilësimet e serverit specifik të postës që do të përdoret.
Për të parë Cilësimet SMTP, duhet të zgjidhni “SMTP” në “Metoda e dërgimit”. Le të shohim çdo cilësim të serverëve të njohur të postës: Yandex, Mail, Gmail, Rambler dhe Yahoo.
Cilësimet SMTP për Yandex
- Emaili i faqes elektronike: kutia postare në yandex.ru, për shembull: [email i mbrojtur]
- Siguria SMTP: SSL
- Porta e serverit SMTP: 465
- Emri i përdoruesit SMTP: identifikimi i kutisë postare në yandex.ru, për shembull: khasanov (pa @yandex.ru)
- Serveri SMTP: smtp.yandex.ru
Cilësimet SMTP për Mail
- Email në uebfaqe: kuti postare në mail.ru, për shembull: [email i mbrojtur]
- Dërguesi i letrës: hyrja që do të shfaqet nga marrësi në fushën "Dërguesi".
- Çaktivizo postimin: ndezur/fikur. funksionet e postimeve masive
- Autorizimi në serverin SMTP: Po
- Siguria SMTP: SSL
- Porta e serverit SMTP: 465
- Emri i përdoruesit SMTP: kuti postare në mail.ru, për shembull: [email i mbrojtur]
- Fjalëkalimi SMTP: fjalëkalimi i kutisë postare
- Serveri SMTP: smtp.mail.ru
Cilësimet SMTP për Gmail
- Email i faqes elektronike: kutia postare në gmail.com, për shembull: [email i mbrojtur]
- Dërguesi i letrës: hyrja që do të shfaqet nga marrësi në fushën "Dërguesi".
- Çaktivizo postimin: ndezur/fikur. funksionet e postimeve masive
- Autorizimi në serverin SMTP: Po
- Siguria SMTP: SSL
- Porta e serverit SMTP: 465
- Emri i përdoruesit SMTP: kuti postare gmail.com, për shembull: [email i mbrojtur]
- Fjalëkalimi SMTP: fjalëkalimi i kutisë postare
- Serveri SMTP: smtp.gmail.com
Cilësimet SMTP për Rambler
- Email i faqes në internet: kutia postare në rambler.ru, për shembull: [email i mbrojtur]
- Dërguesi i letrës: hyrja që do të shfaqet nga marrësi në fushën "Dërguesi".
PHPMailer është një bibliotekë shumë e përshtatshme dhe e njohur për dërgimin e mesazheve me email nga faqja juaj e internetit. Ky artikull përshkruan cilësimet bazë të bibliotekës dhe ofron shembuj kodesh për dërgimin e mesazheve. PHPMailer ka në asortimentin e tij ndoshta gjithçka që mund të dëshironi nga puna me postën: dërgimi në mënyra të ndryshme, përmes serverëve të ndryshëm, duke përfshirë përmes smtp, aftësia për të kriptuar dhe nënshkruar letrat tuaja në mënyrë që ato të mos përfundojnë në postë të padëshiruar dhe shumë më tepër.
Mund ta shkarkoni bibliotekën PHPMailer nga https://github.com/PHPMailer/PHPMailer (butoni "Klon ose shkarko").
Së pari, do të shikoj një çift shembuj të thjeshtë për ta bërë të qartë se si të dërgoni email duke përdorur PHPMailer.
Dërgimi i emaileve përmes funksionit mail() duke përdorur PHPMailer
Nëse dëshironi të dërgoni email nga hosti juaj përmes tuaj serveri i postës, atëherë gjithçka është mjaft e thjeshtë dhe do të duket diçka si kjo:
// Përfshi bibliotekën PHPMailer përdor PHPMailer\PHPMailer\PHPMailer; kërkojnë "PHPMailer/PHPMailer.php"; // Krijo një letër $mail = new PHPMailer(); $mail->setFrom(" [email i mbrojtur]", "Ivan Ivanov"); // nga kush (email dhe emri) $mail->addAddress(" [email i mbrojtur]", "Vasya Petrov"); // kujt (email dhe emri) $mail->Subjekti = "Test"; // tema e letrës // teksti html shkronjat $mail->msgHTML("
Përshëndetje!
Kjo është një letër provë.
"); // Dërgo nëse ($mail->send()) (echo "Mesazhi u dërgua!"; ) else (echo "Gabim: " . $mail->ErrorInfo; )Siç mund ta shihni, gjithçka është mjaft e thjeshtë: ne lidhim bibliotekën, plotësojmë nga kush, kujt, temën dhe tekstin e letrës dhe e dërgojmë atë. Dërgimi i emaileve në këtë mënyrë do të funksionojë vetëm nga adresat e postës elektronike në domenin tuaj (përveç nëse ato janë të lidhura me postues të tjerë).
Dërgimi i emaileve përmes SMTP duke përdorur PHPMailer duke përdorur shembullin e Yandex dhe Google
Ju gjithashtu mund të dërgoni një letër përmes një postuesi tjetër, për shembull, përmes Yandex. Kodi do të duket diçka si kjo:
// Përfshi bibliotekën PHPMailer përdor PHPMailer\PHPMailer\PHPMailer; përdorni PHPMailer\PHPMailer\SMTP; kërkojnë "PHPMailer/PHPMailer.php"; kërkojnë "PHPMailer/SMTP.php"; // Krijo një letër $mail = new PHPMailer(); $mail->isSMTP(); // Dërgimi nëpërmjet SMTP $mail->Host = "smtp.yandex.ru"; // Adresa e serverit SMTP $mail->SMTPAuth = e vërtetë; // Aktivizo autentifikimin SMTP $mail->Emri i përdoruesit = "login"; // emri juaj i përdoruesit (pa domen dhe @) $mail->Fjalëkalimi = "fjalëkalimi"; // fjalëkalimi juaj $mail->SMTPSecure = "ssl"; // enkriptimi ssl $mail->Port = 465; // porta e lidhjes $mail->setFrom(" [email i mbrojtur]", "Ivan Ivanov"); // nga kush $mail->addAddress(" [email i mbrojtur]", "Vasya Petrov"); // kujt $mail->Subject = "Test"; $mail->msgHTML("
Përshëndetje!
Kjo është një letër provë.
"); // Dërgo nëse ($mail->send()) (echo "Mesazhi u dërgua!"; ) else (echo "Gabim: " . $mail->ErrorInfo; )Dërgimi i emaileve përmes Google ka një paralajmërim: ju duhet llogari google lejojnë aksesin në aplikacione të pabesueshme. Për ta bërë këtë, duhet të identifikoheni në llogarinë tuaj https://myaccount.google.com, të shkoni te siguria, të shkoni te seksioni "Aplikacionet e pabesuara që kanë qasje në llogarinë tuaj" dhe të kaloni te "E lejuar" atje. Në kohën e shkrimit, kjo faqe është https://myaccount.google.com/u/0/lesssecureapps.
$mail->Host = "smtp.gmail.com"; // Adresa e serverit SMTP $mail->SMTPAuth = e vërtetë; // Aktivizo autentifikimin SMTP $mail->Emri i përdoruesit = "login"; // emri juaj i përdoruesit $mail->Fjalëkalimi = "fjalëkalimi"; // fjalëkalimi juaj $mail->SMTPSecure = "ssl"; // enkriptimi ssl $mail->Port = 465; // porta e lidhjes
Nëse po ekzekutoni programin për dërgim përmes smtp për herë të parë, atëherë këshillohet që të përdorni shtesë përpara se të dërgoni $mail->SMTPDebug = 1; për të marrë të gjitha mesazhet nga klienti dhe serveri smtp, d.m.th. I gjithë procesi i lidhjes, autorizimit, etj. do të shfaqet në ekran, gjë që është shumë e dobishme për korrigjimin e programit tuaj.
Dërgimi i një emaili me një bashkëngjitje duke përdorur PHPMailer
Gjithçka është mjaft e thjeshtë këtu, thjesht duhet të përdorni metodën shtoj Shtojcën. Unë do të jap një shembull dhe në të njëjtën kohë do të demonstroj disa të tjerë veçori shtesë:
// Përfshi bibliotekën PHPMailer përdor PHPMailer\PHPMailer\PHPMailer; përdorni PHPMailer\PHPMailer\Exception; kërkojnë "PHPMailer/PHPMailer.php"; kërkojnë "PHPMailer/Exception.php"; // Krijo një letër $mail = PHPMailer i ri; $mail->CharSet = "UTF-8"; $mail->setFrom(" [email i mbrojtur]", "Ivan Ivanov"); // nga kush $mail->addReplyTo(" [email i mbrojtur]", "Ivan Ivanov"); // kthej adresën $mail->addAddress(" [email i mbrojtur]", "Vasya Petrov"); // kujt $mail->Subject = "Test"; // subjekti $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // merr "trupin" e letrës nga skedari $mail->AltBody = "Letër me tekst të thjeshtë" // Letër me tekst të thjeshtë nëse klienti nuk mbështet html $mail->addAttachment("my_file.txt" // bashkëngjitni një skedar $mail-); >addAttachment("phpmailer) .jpg" // bashkëngjitni skedarin e dytë // Dërgo nëse ($mail->send()) (echo "Mesazhi u dërgua!"; ) else (echo "Gabim: " . $mail-); >Info e gabimit;
Mund të shtoni adresa të shumta marrësish duke përdorur addAddress. Ose, nëse është e nevojshme, përkundrazi, mund të pastroni të gjitha adresat e marrësve duke përdorur metodën qartë adresat (). Ju mund të pastroni të gjitha bashkëngjitjet duke përdorur clearAtachments ().
Ju gjithashtu mund të përdorni AddEmbeddedImage për të shtuar një bashkëngjitje (zakonisht një imazh) në email, i cili synohet të përdoret në kodin html dhe nuk do të jetë i disponueshëm për shkarkim. Një shembull i përdorimit të një fotografie në një letër që nuk është e disponueshme për shkarkim:
// Përfshi bibliotekën PHPMailer përdor PHPMailer\PHPMailer\PHPMailer; kërkojnë "PHPMailer/PHPMailer.php"; //Krijoni një letër $mail = PHPMailer i ri; $mail->IsHTML(true); $mail->setFrom(" [email i mbrojtur]", "Ivan Ivanov"); $mail->addAddress(" [email i mbrojtur]", "Vasya Petrov"); $mail->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Trupi = "
Imazhi në kodin html
"; // Dërgo $mail->send();Kështu që ju mund të dërgoni letra me imazhe, të cilat janë vetëm në trupin e letrës, por nuk mund të shkarkohen si bashkëngjitje. Këto imazhe mund të përdoren kudo në kodin html të letrës, thjesht duhet të specifikoni cid-in e imazhit që keni përdorur në AddEmbeddedImage në vend të adresës url.
Dërgimi i emailit të nënshkruar dhe të koduar përmes PHPMailer
Si parazgjedhje, PHPMailer kodon të gjitha mesazhet e dërguara. Mund ta çaktivizoni enkriptimin e emailit vetëm kur dërgoni email përmes SMTP duke përdorur kodin:
$mail->SMTPSecure = false; $mail->SMTPAutoTLS = false;
për të firmos letrën me nënshkrimin DKIM, duhet të kryeni disa hapa:
- Gjeneroni çelësa privatë dhe publikë për domenin tuaj
- Shtoni një rekord DNS për një domen TXT me një çelës publik
- Konfiguro nënshkrimin DKIM në PHPMailer përpara se të dërgosh një email
Tani do të përshkruaj çdo hap në pak më shumë detaje.
Gjenerimi i çelësave privatë dhe publikë
Nëse keni hosting Linux dhe keni akses në Shell, atëherë krijimi i skedarëve kyç është po aq i lehtë sa granatimi i dardhave, ju duhet vetëm të ekzekutoni 2 komanda me të drejtat tuaja normale të përdoruesit;
Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout
Përkatësisht, test-privat.pem Dhe test-publik.pem- këto janë çelësa privatë dhe publikë. Ju duhet t'i ruani ato në një dosje që nuk do të jetë e aksesueshme për vizitorët e faqes ose askënd tjetër përveç jush.
Nëse nuk është e mundur të ekzekutoni komanda në guaskë, atëherë për të gjeneruar çelësa privatë dhe publikë dhe për t'i ruajtur ato në skedarë, mund të përdorni kodin e mëposhtëm:
$domain = "test.ru"; // domeni juaj $privatekeyfile = "test-private.pem"; // emri i skedarit në të cilin do të shkruhet çelësi privat $publickeyfile = "test-public.pem"; // emri i skedarit në të cilin do të shkruhet çelësi publik nëse (file_exists($privatekeyfile)) (echo "
Përdorimi i çelësave ekzistues
"; $privatekey = file_get_contents ($privatekeyfile); $publickey = file_get_contents ($publickeyfile); ) other (echo "Krijo çelësa"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); $ pk $publickey = $pubKey["çelës"];
Çelësi privat (mbaje këtë privat!):
" . $privatekey .""; jehonë"
Çelësi publik:
" . $publickey ."";
Kujdes! Mos harroni të siguroheni që dosja ku do të ruhen skedarët të jetë e shkrueshme.
Shtimi i një regjistrimi DNS me një çelës publik
Nevojitet një rekord DNS në mënyrë që serverët e postës që do të marrin letrat tuaja të mund të verifikojnë nënshkrimin në letër duke lexuar rekordin DNS të domenit tuaj. Në mënyrë tipike, mund të shtoni një rekord DNS në panelin e kontrollit të domenit tuaj ose në panelin e kontrollit të hostit. Nëse nuk dini si të shtoni një hyrje, kontaktoni mbështetjen e ofruesit tuaj të pritjes.
Ju duhet të shtoni një rekord DNS si ky:
Emri i hyrjes: mail._domainkey.test.ru. (në fund ka një pikë ".")
TTL: 3600 (ose cilado që do të jetë e paracaktuar)
Lloji i postimit: TXT
Kuptimi: v=DKIM1; h=sha256; t=s; p=KEY_PUBLIC_YOUR
Në emrin e hyrjes test.ru duhet të zëvendësohet me emrin e domenit tuaj. Ju zëvendësoni fjalët "YOUR_PUBLIC_KEY" me tekstin që keni marrë në hapin e mëparshëm pas "Çelësit publik", pa "-----BEGIN PUBLIC KEY-----" dhe "-----FUND PUBLIC CEY- ---", vetëm vetë çelësi. Në këtë rast, të gjitha linjat e çelësit janë të nevojshme bashkohen në një rresht të gjatë në mënyrë që të mos ketë ndërprerje të vijës.
Vendosja e nënshkrimit DKIM në PHPMailer dhe dërgimi i një emaili
Tani gjithçka që mbetet është të bëni disa cilësime të PHPMailer përpara se të dërgoni letrën dhe ajo do të nënshkruhet. Unë mendoj se shembulli i mëposhtëm do të bëjë gjithçka të qartë:
// Përfshi bibliotekën duke përdorur PHPMailer\PHPMailer\PHPMailer; kërkojnë "PHPMailer/PHPMailer.php"; // Krijo një letër $mail = PHPMailer i ri; $mail->CharSet = "UTF-8"; $mail->setFrom(" [email i mbrojtur]"); $mail->addadresa(" [email i mbrojtur]"); $mail->Subject = "Ky është një test"; $mail->msgHTML("
Ky është një test
"); // Vendosja e një nënshkrimi DKIM $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // Dërgo $ mail- >send();sigurisht test.ru ju duhet të ndryshoni në emrin e domenit tuaj, dhe test-privat.pem në rrugën e plotë dhe emrin e skedarit të çelësit privat që u krijua në fazën e gjenerimit të çelësit.
Tani, emailet tuaja të dërguara përmes PHPMailer do të nënshkruhen DKIM me çelësin tuaj privat.
2019-08-05
Përshëndetje, vizitor i dashur!
Ju lutem më falni për vonesën në përditësimin e blogut. Por ka një shpjegim plotësisht të kuptueshëm për këtë. Në fund të fundit, ishte verë, vilë, mysafirë, pyll, ujë dhe shumë më tepër, të cilat nuk më lejuan të trajtoja çështjet e krijimit të një faqe interneti. Por tani jam çliruar pak, të ftuarit janë larguar dhe mendoj se tani patjetër do të jem në gjendje t'i kushtoj vëmendjen e duhur kësaj.
Pra, pasi në artikullin e fundit lidhëm postën e domenit tonë me një nga shërbimet e postës, tani le të shohim se si mund të dërgoni email nga faqja. Për më tepër, në mënyrë të tillë që letrat tona të mos përfundojnë në SPAM, por t'u dorëzohen në mënyrë të besueshme, me një shkallë të lartë probabiliteti, marrësit tanë.
Në përgjithësi, ekziston një funksion i integruar mail() për dërgimin e letrave në PHP. Por duhet theksuar se megjithë thjeshtësinë e kësaj metode (në këtë rast, për të dërguar shkronja mjafton të specifikoni vetëm një rresht kodi me parametra të caktuar), përdorimi i këtij opsioni ka një pengesë të konsiderueshme që lidhet me problemin e SPAM-it. .
Fakti është se filtrat anti-SPAM të serverëve të postës në anën e marrësit nuk favorizojnë vërtet letrat e dërguara përmes funksionit mail(). Dhe në shumicën e rasteve, mesazhe të tilla filtrohen apo edhe fshihen përpara se të arrijnë te adresuesi.
Dhe për të eliminuar sa më shumë raste të tilla, zakonisht përdoret një opsion tjetër, në të cilin letra dërgohen sikur të ishte bërë nga një shërbim postar i palëve të treta.
Kjo metodë quhet dërgimi i postës përmes SMTP me autorizim. Të cilën do ta shikojmë sot duke përdorur shembullin e dërgimit të një formulari feedback. Për më tepër, për këtë ne do të përdorim bibliotekën mjaft të njohur dhe të njohur PHPMailer, e cila e bën mjaft të thjeshtë organizimin e dërgimit të letrave përmes SMTP.
- Si do të dërgojmë letra reagimi
- Krijimi i një formulari reagimi
- Instalimi i bibliotekës PHPMailer
- Ne krijojmë një skript për dërgimin e postës përmes SMTP
- Kontrollimi i dërgimit të emailit
- Skedarët burimor faqe
Si do të dërgojmë letra reagimi
Para se të filloni punë praktike Pas dërgimit të letrave kthyese, së pari do të vendosim se si do ta bëjmë atë.
Formulari i komenteve është krijuar për të lejuar përdoruesin të komunikojë me administratorin e faqes dhe të përcjellë mesazhin e tij. Në mënyrë tipike, ky formular përbëhet nga disa fusha dhe një buton "Dërgo".
Në parim, për të dërguar një email mjafton të përdorni vetëm disa fusha që ofrojnë informacion të mjaftueshëm për përdoruesin dhe përmbajtjen e mesazhit, si p.sh.
- "Emri" - për të futur emrin e dërguesit të mesazhit;
- "E-mail" - për adresën e emailit të dërguesit;
- "Subjekti i mesazhit";
- "Teksti i mesazhit".
Edhe pse mund të shtoni të tjerë. Për shembull, një numër telefoni, nëse kjo është vërtet e nevojshme.
Në rastin tonë, letra të tilla do të dërgohen në adresën e administratorit të faqes nga një kuti postare e vërtetë me autorizim në shërbimin e postës me të cilin është lidhur domeni ynë.
Meqenëse në artikullin e mëparshëm u fokusuam në kontrollimin e lidhjes së postës së domenit me shërbimin Yandex.Mail, ne do të dërgojmë postë për këtë opsion. Edhe pse kjo nuk është e rëndësishme. Më poshtë do të shihni ato opsione që, kur ndryshohen, do t'ju lejojnë të dërgoni email përmes serverit të postës Mail.ru.
Si një kuti postare e vërtetë nga e cila do të dërgohen letra, ne do të përdorim llogarinë e një përdoruesi të postës domeni të sapokrijuar, le të themi me adresën [email i mbrojtur]. Dhe ne do t'i dërgojmë këto letra në kutinë postare të administratorit [email i mbrojtur], të cilin e krijuam më parë në artikullin e mëparshëm.
Kështu, dërguesi i letrës nga formulari i komenteve do të jetë kutia postare [email i mbrojtur]., dhe marrësi - [email i mbrojtur]. Në këtë rast, të gjitha informacionet në lidhje me përdoruesin që dërgoi mesazhin me përmbajtjen e tij do të transmetohen në trupin e letrës së dërguar.
Krijimi i një formulari reagimi
Pasi të kemi vendosur për procedurën e dërgimit të letrave, tani do të krijojmë një formular reagimi me të cilin do ta bëjmë këtë.
Më poshtë është kodi HTML për këtë formular, të cilin do ta vendosim në faqen "Kontaktet" (skedar kontakty.php në drejtorinë e artikujve).