Odosielanie e-mailov cez smtp s php autorizáciou. Odosielanie pošty cez SMTP v PHP. Odosielanie pošty php cez nastavenie skriptu SMTP

Mail PHP

Táto funkcia je štandardne implementovaná ako odosielanie e-mailov. Táto funkcia nevyžaduje server tretej strany na preposielanie e-mailov. Ak chcete skontrolovať správnosť tejto funkcie, stačí vytvoriť súbor test.php v priečinku s webom a umiestniť tam nasledujúci kód:

Kde namiesto toho "EMAILRECIPIENT" Zadajte e-mail, na ktorý má byť list zaslaný.

Miesto tento súbor v koreňovom adresári vašej stránky.

Ďalej do panela s adresou zadajte www.VašaDoména/test.php. Ak dostanete list na zadaný e-mail, váš hosting funguje správne s funkciou odosielania listov " Mail PHP". Je možné, že list skončil v spame, preto ho tiež treba skontrolovať.

Ak list prišiel v nezrozumiteľnom kódovaní, zmeňte riadok: "Kontrola odosielania pošty" na "Kontrola odosielania pošty", "Content-type:text/html;charset=utf-8".

A zopakujte odoslanie listu cez panel s adresou vášho prehliadača.

Ak sa po vyššie uvedených manipuláciách testovací list nedostane ku konečnému príjemcovi, musíte kontaktovať technickú podporu vášho hostiteľa.

Medzi nedostatky túto metódu Stojí za zmienku, že práca nie je trvalá túto metódu. Môže dôjsť k prerušeniam odosielania e-mailov na strane hostiteľa.

Hlavnou nevýhodou tejto metódy je, že všetky listy odoslané na e-maily klientov nerozpoznajú poštové služby (gmail, mail.ru, yandex.ru), pretože boli odoslané priamo z vašej webovej stránky.

Poštová služba Gmail zobrazuje tieto listy s otáznikom a podpisom: „Systém Gmailu nedokázal potvrdiť, že tento list bol odoslaný z domény YourDomain. Môže ísť o spam.“

Aby sa predišlo tejto situácii .

SMTP (Simple Mail Transfer Protocol)

SMTP - protokol na prenos pošty. Celkovo na nastavenie prenosu pošty pomocou tohto protokolu potrebujete samotný server SMTP. Najbežnejšou možnosťou použitia podnikovej (doménové) pošty yandex.ru ako servera SMTP je https://pdd.yandex.ru/.

V prvom rade je to potrebné účet (mail) yandex, na základe čoho budú vytvorené emaily pre Vašu doménu: “objednávka@VašaDoména” “info@VašaDoména”... Hlavný účet nebude nikde viditeľný a slúži len na vytváranie doménových emailov na jeho základe v budúcnosti.

Po prihlásení do svojho osobný účet Pošta domény Yandex sa vytvára pomocou odkazu https://pdd.yandex.ru/. Toto je e-mail domény, ktorý používatelia uvidia v poli „Odosielateľ“.

Pole „Odosielateľ“ je povinné pri odosielaní e-mailov cez SMTP. Používanie SMTP na odosielanie listov, kombinácia " Doména" - "Email", čím listy rozpoznávajú poštové služby.


Medzi nevýhody tejto metódy stojí za zmienku nemožnosť „načítania“ poštového portrétu domény, pretože samotné poštové služby túto funkciu ešte neposkytujú.

2019-08-05

Dobrý deň, milý návštevník!

Odpustite mi, prosím, meškanie s aktualizáciou blogu. Ale na to existuje úplne pochopiteľné vysvetlenie. Predsa len bolo leto, dačo, hostia, les, voda a mnoho iného, ​​čo mi nedovolilo popasovať sa s tvorbou webu. Ale teraz som sa trochu uvoľnil, hostia odišli a myslím, že teraz tomu určite budem môcť venovať náležitú pozornosť.

Takže potom, čo sme v minulom článku pripojili poštu našej domény k jednej z poštových služieb, teraz sa pozrime, ako môžete posielať e-maily z lokality. Navyše tak, aby naše listy nekončili v SPAM-e, ale boli spoľahlivo, s vysokou mierou pravdepodobnosti doručené našim adresátom.

Vo všeobecnosti je v PHP zabudovaná funkcia mail() na odosielanie listov. Treba však poznamenať, že napriek jednoduchosti tejto metódy (v tomto prípade na odosielanie listov stačí zadať iba jeden riadok kódu s určitými parametrami) má použitie tejto možnosti významnú nevýhodu spojenú s problémom SPAM .

Faktom je, že anti-SPAM filtre poštových serverov na strane príjemcu skutočne neuprednostňujú listy odoslané prostredníctvom funkcie mail(). A vo väčšine prípadov sú takéto správy filtrované alebo dokonca vymazané skôr, ako sa dostanú k adresátovi.

A aby sa takéto prípady čo najviac eliminovali, zvyčajne sa používa iná možnosť, pri ktorej sa listy posielajú tak, ako keby to robila poštová služba tretej strany.

Táto metóda sa nazýva odosielanie pošty cez SMTP s autorizáciou. Na čo sa dnes pozrieme na príklade odoslania formulára spätná väzba. Navyše na to použijeme pomerne známu a populárnu knižnicu PHPMailer, ktorá vám umožňuje pomerne jednoducho organizovať odosielanie listov cez SMTP.

  • Ako budeme posielať listy so spätnou väzbou
  • Vytvorenie formulára spätnej väzby
  • Inštalácia knižnice PHPMailer
  • Vytvárame skript na odosielanie pošty cez SMTP
  • Kontrola odosielania e-mailov
  • Zdrojové súbory lokality

Ako budeme posielať listy so spätnou väzbou

Predtým ako začneš praktická práca Po odoslaní listov so spätnou väzbou sa najprv rozhodneme, ako to urobíme.

Formulár spätnej väzby je navrhnutý tak, aby umožnil používateľovi komunikovať so správcom stránky a odovzdať mu jeho správu. Tento formulár sa zvyčajne skladá z niekoľkých polí a tlačidla „Odoslať“.

V zásade na odoslanie e-mailu stačí použiť iba niekoľko polí, ktoré poskytujú dostatočné informácie o používateľovi a obsahu správy, ako napríklad:

  • "Meno" - zadajte meno odosielateľa správy;
  • "E-mail" - pre adresu Email odosielateľ;
  • "Predmet správy";
  • "Text správy".

Aj keď môžete pridať ďalšie. Napríklad telefónne číslo, ak je to naozaj potrebné.

V našom prípade budú takéto listy zasielané na adresu správcu stránky zo skutočnej poštovej schránky s autorizáciou na poštovej službe, ku ktorej je pripojená naša doména.

Keďže v predchádzajúcom článku sme sa zamerali na kontrolu pripojenia doménovej pošty k službe Yandex.Mail, budeme posielať poštu pre túto možnosť. Aj keď to nie je dôležité. Nižšie uvidíte tie možnosti, ktoré vám po zmene umožnia odosielať e-maily cez poštový server Mail.ru.

Ako skutočnú schránku, z ktorej sa budú posielať listy, použijeme účet novovytvoreného doménového poštového užívateľa, povedzme s adresou [e-mail chránený]. A my tieto listy pošleme Poštová schránka správca [e-mail chránený], ktorý sme predtým vytvorili v predchádzajúcom článku.

Odosielateľom listu z formulára spätnej väzby bude teda poštová schránka [e-mail chránený]., a príjemca - [e-mail chránený]. V tomto prípade budú všetky informácie o používateľovi, ktorý odoslal správu s jej obsahom, prenesené v tele odoslaného listu.

Vytvorenie formulára spätnej väzby

Potom, čo sme sa rozhodli pre postup odosielania listov, teraz vytvoríme formulár spätnej väzby, pomocou ktorého to urobíme.

Nižšie je uvedený HTML kód tohto formulára, ktorý umiestnime na stránku "Kontakty" (súbor kontakty.php v adresári článkov).

    "článok" >

    Kontakty

    Spätná väzba

    "kontakt" akcia = "#" metóda = "post" >

    Forma spätnej väzby

    V prípade akýchkoľvek otázok, žiadostí a obchodných návrhov nás môžete kontaktovať pomocou formulára spätnej väzby nižšie.

    "kontaktný blok" >

    "kontaktný vstup" >

    "text" id = "kontaktné meno" meno = "kontaktné meno" titul = "Názov musí byť v ruštine a obsahovať aspoň 3 znaky" vzor = "{3,}" požadované >

  1. "prázdny kontakt" >

    "kontaktný vstup" >

    "e-mail" id = "kontaktný email" meno = "kontaktný email" požadované >

  2. "kontaktný predmet" >

  3. "kontakt-komentár" >

  4. "kontaktné tlačidlo" >

    "Predložiť" meno = "kontaktné tlačidlo" hodnota = "Odoslať" >

Obr.1 HTML kód formulára spätnej väzby

Ako nakoniec vyzerá tu zobrazený formulár spätnej väzby, môžete vidieť na nasledujúcej snímke obrazovky.

Teda požadovaný formulár vytvorené. A teraz môžete prejsť k problematike spracovania a odosielania údajov formou emailovej správy.

Inštalácia knižnice PHPMailer

Ako už bolo uvedené, na odosielanie pošty budeme používať knižnicu PHPMailer, ktorá výrazne zjednoduší odosielanie e-mailov cez protokol SMTP s autorizáciou v poštovej službe tretej strany.

Ak ho chcete nainštalovať, musíte si ho stiahnuť potrebné súbory. Dá sa to urobiť z webovej služby GitHub pomocou Composer (správca závislostí balíkov pre PHP). Alebo si jednoducho stiahnite potrebné súbory bežným spôsobom.

snímka obrazovky 73

Nižšie je stránka webovej služby GitHub, kde je vyznačený odkaz na bežné stiahnutie knižnice PHPMailer.

okrem toho Najnovšia verzia 6.0.7, ktorý bol uložený v čase písania tohto článku, si môžete stiahnuť z priložených materiálov.

V každom prípade by sa mal výsledný archívny súbor rozbaliť a potom by sa mal extrahovaný hlavný priečinok PHPMailer so všetkým jeho obsahom umiestniť do koreňového adresára stránky. Zároveň si ho pre jednoduchosť môžete premenovať na PHPMailer. Nižšie je uvedený obsah priečinka PHPMailer umiestneného v koreňovom adresári stránky.

Takto sme nainštalovali knižnicu PHPMailer. Potom môžeme začať vytvárať skript, pomocou ktorého budeme posielať e-mailové správy z našej webovej stránky.

Vytvárame skript na odosielanie pošty cez SMTP

Na zostavenie skriptu stačí použiť odporúčania na používanie PHPMaileru uvedené na stránke GitHub, ktoré sme predtým použili na stiahnutie knižnice.

Najmä naznačujú, že na začiatku skriptu je potrebné importovať triedy PHPMailer do globálneho menného priestoru. A sú uvedené konkrétne riadky zodpovedajúceho kódu. Sú tu aj príklady použitia vlastností a metód PHPMaileru, vrátane možnosti odosielania pošty cez SMTP.

Ak to však nestačí, môžete použiť aj dokumentáciu, ktorá obsahuje popis všetkých vlastností a metód tejto knižnice.

snímka obrazovky 74

Nižšie je uvedený kód skriptu na odosielanie pošty z formulára spätnej väzby cez SMTP s autorizáciou. Kde sú všetky riadky súvisiace s PHPMailerom uvedené s vysvetlením a zvýraznené svetlým pozadím.

Zvyšok časti vrátane fragmentov súvisiacich s prijímaním a spracovaním údajov z formulára, ktoré sme predtým museli používať v iných procesoroch, je naznačený tmavým pozadím. Podrobnejšie boli rozobraté skôr v článku venovanom konkrétne problematike získavania a overovania údajov z formulára v PHP. Kde sme hovorili aj o univerzálnej používateľskej funkcii na validáciu a spracovanie údajov z formulárov check_symbol().

Tento skript umiestnime do rovnakého súboru kontakty.php, v ktorom sme predtým vytvorili formulár spätnej väzby.

    //----Skript na odosielanie pošty cez SMTP pomocou PHPMailer----

    //Importovanie tried PHPMailer do globálneho priestoru názvov. Mali by byť v hornej časti skriptu, nie vo vnútri funkcie

    použitie PHPMailer\PHPMailer\PHPMailer ;

    použitie PHPMailer\PHPMailer\Výnimka ;

    ak (!prázdny($_POST["contact-button" ])) (

    $name = $_POST["meno-kontaktu" ];

    $meno = kontrolný_symbol ($meno, "Meno" , "1" , "/^+\z/iu" );

    $email = $_POST["kontaktný-e-mail" ];

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

    $predmet = $_POST["kontakt-predmet" ];

    $predmet = kontrolný_symbol ($predmet, "Predmet správy" , "1" , "0" );

    $comment = $_POST["kontaktný-komentár" ];

    $comment = check_symbol ($comment, "Text správy", "1" , "0" );

    ak (!prázdny($GLOBALS["upozornenie" ])) (

    $upozornenie = "Údaje formulára neboli odoslané. Našli sa nasledujúce chyby:\n".$alert;

    zahŕňajú"alert.php" ;

    inak {

    //Pripojenie knižnice

    vyžadovať"PHPMailer/src/PHPMailer.php" ;

    vyžadovať"PHPMailer/src/Exception.php" ;

    vyžadovať"PHPMailer/src/SMTP.php" ;

    $mail = Nový PHPMailer(); //Inicializácia triedy

    $from = " [e-mail chránený]" ; //E-mailová adresa, z ktorej je list odoslaný

    $to = " [e-mail chránený]" ; //Adresa príjemcu

    $mail -> isSMTP(); //Použiť protokol SMTP

    $mail -> Host = "smtp.yandex.ru" ; //Adresa poštového servera

    $mail -> SMTPAuth = pravda ; //Povoliť režim autorizácie

    $mail -> Používateľské meno = " [e-mail chránený]" ; //Prihlásenie z e-mailu domény pripojeného k e-mailovej službe tretej strany (v tomto prípade Yandex.Mail)

    $mail -> Heslo = "27MrDon89" ; //Heslo pre doménovú poštu

    $mail -> SMTPSecure = "ssl" ; //Šifrovací protokol

    $mail -> Port = "465" ; //Port servera SMTP

    $mail -> CharSet = "UTF-8" ; //Kódovanie

    $mail -> setFrom ($from, "Správca" ); //Adresa a meno odosielateľa

    $mail -> addAddress ($to, "Správca" ); //Adresa a meno príjemcu

    $mail -> isHTML ( pravda ); //Nastaviť formát e-mailu na HTML

    $mail -> Predmet = "Formulár spätnej väzby odoslaný"; //Predmet e-mailu (nadpis)

    $mail -> Body = "

    Meno odosielateľa: $name

    Adresa odosielateľa: $email

    Predmet správy: $predmet

    Obsah správy: $komentár



    " ; //Obsah správy

    $mail -> AltBody = "Alternatívny text písmen"; //Alternatívny e-mail, ak e-mailový klient nepodporuje formát HTML

    $mail -> SMTPDebug = 0 ; //Povoliť ladenie SMTP: 0 - vypnuté (na bežné použitie), 1 = správy klienta, 2 - správy klienta a servera

    ak($mail -> odoslať()) (

    $upozornenie = "Správa poslaná"; //Do dialógového okna prehliadača vypíše správu o úspešnom odoslaní listu

    inak {

    $upozornenie = "Chyba, e-mail nemožno odoslať: ".$mail -> ErrorInfo ; //Vypíše chybové hlásenie

    zahŕňajú"alert.php" ;

Obr.5 Skript na odosielanie emailov cez SMTP s autorizáciou

Ako vidíte, všetky riadky priamo súvisiace s odoslaním e-mailovej správy, v ktorej sú špecifikované potrebné metódy a vlastnosti, sú sprevádzané komentármi. Preto nemá zmysel sa opakovať, ale môžeme sa venovať iba niektorým z nich, ktoré si skutočne vyžadujú ďalšie vysvetlenia, a to:

1. Vzhľadom na to, že list je odoslaný z poštovej služby tretej strany, použijú sa tu nastavenia zodpovedajúce konkrétnemu SMTP serveru. V tomto prípade sa v prípade použitia servera Yandex.Mail použijú nasledujúce hodnoty vlastností:

  • Nehnuteľnosť Hostiteľ(poz.28) - Adresa poštového servera s hodnotou smtp.yandex.ru;
  • Nehnuteľnosť Zabezpečené SMTPS
  • Nehnuteľnosť Port

Tieto hodnoty vlastností boli prevzaté zo stránky Yandex.Help zobrazenej na nasledujúcej snímke obrazovky.

Takéto informácie však možno získať aj z iných zdrojov. Ak to chcete urobiť, stačí zadať príslušný dotaz do vyhľadávacieho nástroja, napríklad: „Smtp server Yandex“. Kde môžete nájsť veľké množstvo referencií na túto problematiku.

Podobným spôsobom je možné získať hodnoty nastavení z iných serverov SMTP. Nižšie je snímka obrazovky stránky pomocníka Mail.ru, ktorá zobrazuje nastavenia servera SMTP poštovej služby Mail.ru.

A teda v prípade použitia Mail.ru ako servera SMTP tretej strany by sa mali použiť nasledujúce hodnoty vlastností triedy PHPMailer:

  • Nehnuteľnosť Hostiteľ(poz.28) - adresa poštového servera (smtp.mail.ru);
  • Nehnuteľnosť Zabezpečené SMTPS(poz.32) - šifrovací protokol (ssl);
  • Nehnuteľnosť Port(poz. 33) - Port servera SMTP (465).

Podobný prístup by sa mal uplatniť aj pri iných e-mailových službách.

2. V majetku Používateľské meno(poz. 30) je potrebné uviesť celú adresu doménovej schránky. V tomto prípade, " [e-mail chránený]".

Ak však na odosielanie listov používate iné konto ako doménové poštové konto, ale adresu priamo súvisiacu s poštovou službou, napr. [e-mail chránený]", potom by prihlasovacie meno malo byť len časťou adresy po znak "@". Prihlasovacie meno by v tomto prípade malo hodnotu "spätná väzba".

3. PHPMailer poskytuje vlastnosť SMTPDebug(poz. 50), ktorý umožňuje zobraziť rôzne úrovne chýb na obrazovke prehliadača. Táto funkcia výrazne zjednodušuje hľadanie problémov pri ladení skriptu.

V normálnom režime s hodnotou nastavenou na 0 je výstup podrobných informácií o chybe zvyčajne zakázaný. Ak sa však vyskytnú problémy s odosielaním pošty alebo počas ladenia, je možné použiť iné hodnoty na zobrazenie zmysluplnejších informácií o chybe.

Aby sme videli, ako to vyzerá v praxi, dočasne vložíme do nastavení nejakú chybu. Napríklad v poštovom hesle domény (vlastnosť heslo, poz. 31). A tiež na zobrazenie podrobných informácií o chybe, dočasne nastavenej vo vlastnosti SMTPDebug(poz.50) hodnota 1. Keď je všetko odladené a skontrolované, deaktivujeme režim ladenia SMTP, pričom 1 nahradíme 0.

V záverečnej časti skriptu sa po zadaní všetkých potrebných vlastností a metód použije metóda na odoslanie listu poslať ()) (poz. 51). A ak je list odoslaný, a spôsob poslať () pre objekt $mail vráti true, potom v dialógovom okne prehliadača cez premennú $alert Zobrazí sa správa o úspešnom odoslaní pošty (poz. 52).

Ak z nejakého dôvodu nebolo možné odoslať poštu, a teda metóda nemohla vrátiť hodnotu true, bude tento stav sprevádzaný zodpovedajúcim chybovým hlásením (poz. 55).

Kontrola odosielania e-mailov

Po vytvorení skriptu na odosielanie pošty sa, prirodzene, musíme pozrieť na výsledok našej „kreatívy“. Zohľadnili sme tu všetko a neurobili sme žiadne chyby?

Ak to chcete urobiť, pokúsme sa podľa plánu odoslať správu od používateľa správcovi lokality z formulára spätnej väzby. Nižšie je snímka obrazovky formulára spätnej väzby s vyplnenými poľami pred odoslaním.

A tu je výsledok odoslania formulára.

Kde je zo správy v dialógovom okne prehliadača zrejmé, že list nemožno odoslať kvôli problémom s pripojením SMTP.

Ale odteraz majetok SMTPDebug(poz. 50) je priradená hodnota 1, následne môžeme vidieť podrobné informácie o vzniknutej chybe a zistiť dôvod jej vzniku.

Nasledujúca snímka obrazovky ukazuje, že pri pokuse o pripojenie bola zistená chyba overenia, čo znamená použitie nesprávneho prihlasovacieho mena alebo hesla.

Po odstránení nezhody hesla (predtým bolo použité nesprávne heslo, aby bolo možné skontrolovať výstup dodatočných informácií o chybe), sa pokúsime odoslať e-mail znova.

Tentokrát sa zdalo, že všetko prebehlo v poriadku a dostali sme správu, že mail bol úspešne odoslaný. Zrejme okrem zámerne zadanej dočasnej chyby v hesle k doménovej pošte sme sa žiadnej inej chyby nedopustili.

Aby sme sa ale uistili, že list bol adresátovi skutočne doručený, zadajme poštu s adresou [e-mail chránený] a pozrite sa na výsledok.

Ako vidíte, list z adresy [e-mail chránený], z ktorej sme odoslali emailovú správu s názvom „Spätná väzba“ úspešne dorazila administrátorovi stránky. Telo listu zároveň obsahuje všetok obsah, ktorý sme vygenerovali v skripte pomocou údajov získaných z formulára spätnej väzby, a to:

  • Meno odosielateľa: Nikolay;
  • Adresa odosielateľa: [e-mail chránený];
  • Predmet správy: Kontrola odosielania pošty;
  • Obsah správy: Testovacia správa.

Teraz, po úspešnej kontrole odosielania pošty, môžete deaktivovať režim ladenia SMTP priradením vlastnosti SMTPDebug(poz.50) hodnota 0.

Dokončili sme tak úlohu vytvorenia nástroja na odosielanie pošty cez SMTP s autorizáciou pomocou poštového servera tretej strany.

V ďalšom článku sa napríklad pozrieme na to, ako posielať potvrdzovacie e-maily na obnovenie údajov registrovaných používateľských účtov.

Zdrojové súbory lokality

Zdrojové súbory lokality s aktualizáciami, ktoré boli vykonané v tomto článku, si môžete stiahnuť z priložených doplnkových materiálov:

  • súbory adresára www
  • Databázové tabuľky MySQL

Odosielanie pošty cez SMTP z lokálneho servera vám umožňuje otestovať odosielanie správ z lokality umiestnenej na lokálnom počítači, alebo jednoduchšie, z lokálneho servera. Na tento účel môžete použiť ľubovoľnú poštovú službu Yandex, Google alebo mail.ru.

Po prvé, SMTP (Simple Mail Transfer Protocol) je široko používaný sieťový protokol určený na prenos e-mailov cez siete TCP/IP. A všetky populárne e-mailové služby majú takéto protokoly.

S príchodom lokálnych serverov už nebolo potrebné vyberať poskytovateľa hostingu na kontrolu výkonu jednotlivých skriptov alebo cms systémov, a tým menej za to platiť. Je oveľa jednoduchšie otestovať všetko na počítači a potom môžete všetkým ukázať, čo ste „urobili“.

Mnohé z týchto serverov už majú zabudovaný softvér a potrebnú funkcionalitu pre prácu s poštou, stačí ju len správne nakonfigurovať.

Na kontrolu funkčnosti takejto pošty je potrebné minimálne:

  • Openserver môžete použiť ako lokálny server.
  • A jednoduchý skript, ktorého šablónu nájdete hneď nižšie.
  • Môžete použiť akýkoľvek poštový server.

Odosielanie pošty php cez nastavenie skriptu SMTP

Je potrebné upraviť jednoduchú šablónu skriptu, ktorú je možné skopírovať nižšie alebo stiahnuť zo stoviek podobných stránok.

Najprv musíte zmeniť niektoré hodnoty v šablóne skriptu.
do — zmeniť na poštovú adresu, na ktorú sa odošle e-mailová správa.
predmet - predmet listu
správu — samotná správa alebo telo listu.

Príklad môjho skriptu:

Funkcionalitu môžete samozrejme trochu rozšíriť a nechať skript zobraziť správu o odosielaní pošty. Aj keď v skutočnosti je to server SMTP, ktorý odosiela a skript iba generuje správu.

Môžete napríklad napísať toto:

Všetky nahradené hodnoty musia byť v úvodzovkách, inak skript vyvolá chybu. Potom môžete skript uložiť do priečinka lokálneho servera.

Napríklad: domains/send/index.php a začnite nastavovať odosielanie pošty cez SMTP opensrerver.

Pošta príde na akúkoľvek adresu, ktorá bude zadaná v skripte namiesto hodnoty 'to' , ale tento mail bude spracovaný a odoslaný presne tým SMTP, ktorý bude špecifikovaný v nastaveniach openserveru.

  1. Spustenie servera
  2. Otvorte modul openserver s nastaveniami v menu „mail“.
  3. Vyplníme všetky polia, ako je znázornené na obrázku, pričom nahradíme používateľské meno, e-mail odosielateľa a heslo zo skutočnej poštovej schránky Yandex.

Nastavenia uložíme a po reštarte servera máte prístup k samotnému skriptu. V priečinku „My Sites“ otvorte priečinok „send“, v ktorom sa nachádza predtým uložený skript index.php.

Akonáhle sa pristúpi k tomuto skriptu, v novom okne prehliadača sa objaví informácia, že skript je dokončený.

Potom by ste mali skontrolovať svoju poštovú schránku, ktorej adresa bola uvedená v skripte, aby ste zistili, či list prišiel.

Ak tam nie je, znamená to, že niečo nie je správne nakonfigurované alebo list skončil v priečinku nevyžiadanej pošty.

Všetky ostatné nastavenia vyzerajú podobne, no pre každý prípad nezaškodia ďalšie informácie.

Ak chcete nastaviť odosielanie pošty cez SMTP mail ru, musíte jednoducho nahradiť parametre Yandex parametrami mail ru.

A aby ste zakaždým neprestavovali lokálny server, je najlepšie nakonfigurovať rôzne profily otvoreného servera. Ako to urobiť, je uvedené vo videonávode.

V tomto prípade bude stačiť jednoducho načítať profil a po reštarte servera budú dostupné všetky nastavenia, ktoré boli pre tento profil zadané. Je to veľmi pohodlná vec a funguje veľmi jednoducho.

Pre každý profil (vôbec nezáleží na tom, ako sa bude volať) je potrebné vykonať jeho vlastné nastavenia, pokiaľ samozrejme neplánujete používať skripty, cms systémy a aplikácie s inými parametrami.
Ak nie, môžete si vystačiť s predvolenými nastaveniami.

Pokiaľ ide o SMTP mail ru, tu je všetko rovnaké.

Údaje Yandex sa zmenia na údaje pošty ru

Odosielanie pošty cez smtp google

Nastavenie odosielania pošty cez Google SMTP vyžaduje trochu úsilia.

Po prvé, vytvorenie profilu v Google je ťažšie ako v iných systémoch Yandex a mail ru
Po druhé, systém list jednoducho neprepustí, aj keď zadáte svoje prihlasovacie údaje. Na začiatok pošle list so všetkými potrebnými informáciami o ďalších pokynoch.

Inak Pre Google je nakonfigurovaný presne rovnakým spôsobom. Zmenia sa iba všetky údaje.

Ak chcete nakonfigurovať odosielanie pošty cez iný SMTP, všetky údaje budú približne rovnaké.

Ak vám všetko vyšlo a listy sa dostali k určenému adresátovi, všetko prebehlo správne. Bolo by skvelé, keby ste sa o svoje skúsenosti podelili v komentároch.

Aby určitá webová stránka mala možnosť pracovať efektívne a produktívne, malo by sa k jej tvorbe pristupovať čo najzodpovednejšie a najšetrnejšie. Osobitnú pozornosť si zaslúži výber systému, ktorý sa použije na vytvorenie internetového obchodu. Faktom je, že komerčná platforma špecializujúca sa na predaj tovaru alebo služieb musí umožňovať implementáciu všetkej potrebnej funkcionality a musí byť jednoduchá na používanie, a to ako pre správcov podieľajúcich sa na údržbe a napĺňaní stránok, tak aj pre klientov internetových obchodov. Mnoho ľudí a spoločností, ktoré stoja pred otázkou výberu vhodného CMS pre seba, analyzuje, či zvoliť Magento alebo OkayCMS. Poďme si porovnať vlastnosti a možnosti týchto webových motorov.

Pri práci na vlastnej webovej stránke bude musieť osoba alebo spoločnosť vynaložiť veľa úsilia - iba v tomto prípade sa môžete spoľahnúť na pozitívne výsledky a získanie skutočne efektívneho nástroja. Jednou zo zásadných otázok, ktoré je potrebné vyriešiť ešte pred začatím tvorby webstránky bude, ako sa rozhodnúť pre najvhodnejšiu možnosť CMS. Ďalej porovnáme dva CMS: Joomla alebo OkayCMS a venujeme pozornosť vlastnostiam každého z nich.

Mať vlastnú webovú stránku je jednou zo základných požiadaviek na efektívne a úspešne fungujúce podnikanie. Štatistiky jednoznačne poukazujú na nárast počtu nákupov rôzneho tovaru a objednávok služieb cez internet. Ak to vezmeme do úvahy, väčšina komerčných spoločností si už uvedomuje potrebu mať vlastnú webovú stránku. Samotná skutočnosť, že máme internetový zdroj, však nestačí na to, aby sme sa mohli spoľahnúť na jeho efektívnosť, ziskovosť a očakávané obchodné výhody.

Pri príprave na vytvorenie vlastnej webovej stránky alebo otvorenie internetového obchodu musíte vziať do úvahy a analyzovať mnohé problémy, ako aj vyriešiť rôzne problémy. Len v tomto prípade sa môžete spoľahnúť na to, že váš projekt prinesie pozitívne výsledky a dokáže plne naplniť vaše očakávania. Spomedzi rôznych otázok súvisiacich s vývojom internetového obchodu si osobitnú pozornosť zaslúži otázka výberu CMS. Aby sme vám uľahčili rozhodovanie o optimálnom motore pre vás

Pri plánovaní vytvorenia vlastnej webovej stránky pre budúci internetový obchod stojí pomerne veľké množstvo ľudí a dokonca aj spoločností špecializujúcich sa na predaj pred neľahkou a mimoriadne dôležitou voľbou: ktorý z existujúcich CMS si vybrať. Ak premýšľate, čo si vybrať: PrestaShop alebo OkayCMS, odporúčame vám prečítať si tento článok, v ktorom porovnáme tieto dva systémy na vytváranie internetových stránok, najmä internetových obchodov.

Keďže posielanie anonymných správ z virtuálnych hostingových serverov Windows je zakázané, posielanie listov by sa malo uskutočňovať cez SMTP server, na ktorý je možné využiť aj náš poštový systém.

Ako posielať e-maily pomocou PHP?

Použitie akejkoľvek triedy PHP, ktorá podporuje autorizáciu na serveri smtp. Môžete napríklad použiť sadu tried PHPMailer.

Môžete tiež použiť náš príklad, ktorý implementuje odosielanie listov pomocou smtp servera, ktorý vyžaduje autorizáciu. Preto nezabudnite do skriptu pridať príslušné prístupové údaje, napríklad:

// Ak potrebujete zobraziť protokol relácie SMTP, môžete odkomentovať nasledujúci riadok. // $_SERVER["debug"] = true; function MailSmtp ($reciever, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // Adresa servera SMTP$smtp_port = 25 ; // Port servera SMTP$smtp_user = " [e-mail chránený]" ; // Používateľské meno pre autorizáciu na serveri SMTP$smtp_password = "pAsSwORd" ; // Heslo pre autorizáciu na serveri SMTP$mail_from = " [e-mail chránený]" ; // Schránka, z ktorej je list odoslaný$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sock, 512); if (! $sock ) ( printf ( "Zásuvka nie je vytvorená\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "NÁZOV_SERVERU" ]); smtp_msg($sock, "AUTH LOGIN"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock , "MAIL OD:<" . $mail_from . ">" ); smtp_msg ($sock , "RCPT TO:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Predmet: " . $predmet . "\r\n" . $hlavičky ; $data = $hlavičky . "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) funkcia smtp_msg ($sock , $msg ) ( ak ( ! $sock ) ( printf ("Zlomená zásuvka!\n" ); exit(1 ); ) if (isset($_SERVER [ "ladenie" ]) && $_SERVER [ "ladenie" ]) ( printf ( "Odoslať od nás : %s
" , nl2br (htmlspecialchars ($msg)); ) fputs ($sock, " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket je dole\n" ); exit(1); ) else ( if (isset($_SERVER [ "ladenie" ]) && $_SERVER [ "ladenie" ]) ( printf ("Prijaté zo servera: %s
" , nl2br (htmlspecialchars ($str )); ) $e = explode (" " , $str ); $code = array_shift ($e); $str = implode ( " ", $e); if ($code > 499 ) ( printf ( "Problémy s konverzáciou SMTP.

Kód %d.
Správa %s
"
, $kód , $str ); exit(1); ) ) ? >

Stiahnite si príklad hotového skriptu s funkciou MailSmtp(): smtpauth.php.sample

Na priame nahradenie funkcie mail() môžete použiť funkciu MailSmtp() opísanú vyššie; zvážte príklad najjednoduchšieho formulára v PHP:

// Hlavičky správ, definujú kódovanie správy, polia From, To atď.$headers = "MIME verzia: 1.0\r\n" ; $headers .= "Typ obsahu: text/html; charset=windows-1251\r\n"; $hlavičky .= "Komu: $do \r\n" ; $headers .= „Od: Meno odosielateľa " ; // pošta ($komu, $predmet, $správa, $hlavičky); require_once "smtpauth.php" ; MailSmtp ($to, $predmet, $správa, $hlavičky); ) ?>
Komu: Predmet: Text: 
 
 

Aby tento formulár fungoval bez funkcie mail(), zahrnuli sme súbor smtpauth.php cez require_once a zavolali v ňom popísanú funkciu MailSmtp() s argumentmi podobnými mail(). Zároveň sme zakomentovali samotné volanie mail() v kóde, aby sme sa vyhli chybám pri vykonávaní skriptu.

Ako posielať e-maily pomocou ASP.NET?

Ak používate verziu 2.0, použite triedu MailMessage System.Net.Mail), dobre popísané.

Nižšie sú uvedené príklady jeho použitia pre jazyky C# a VisualBasic:

Príklad pre jazyk C#:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // vytvorenie nového písmena message.To.Add(" [e-mail chránený]"); // pridanie adresy príjemcu message.From = new MailAddress("from@ doména.tld", "Meno odosielateľa"); // s uvedením mena a adresy odosielateľa message.Subject = "Predmet správy"; // s uvedením predmetu listu message.BodyEncoding = System.Text.Encoding.UTF8; // určenie kódovania písmen message.IsBodyHtml = false; // určenie formátu písmena (true - HTML, false - nie HTML) message.Body = "Text správy"; // špecifikovanie textu (telo) listu Klient SmtpClient = new SmtpClient("smtp.site",25); // vytvorenie nového pripojenia k serveru "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // definuje spôsob odosielania správ client.EnableSsl = false; // zakáže potrebu používať zabezpečené pripojenie k serveru client.UseDefaultCredentials = false; // zakáže používanie predvolených podrobností autorizácie client.Credentials = new NetworkCredential("postmaster@ doména.tld", "***heslo***"); // špecifikovanie potrebných údajov (používateľské meno a heslo) na autorizáciu na serveri SMTP klient.Odoslať(správu); // poslať správu %>

Stiahnite si príklad hotového formulára demonštrujúceho použitie tejto metódy: MailForm.aspx.

Príklad jazyka VisualBasic:

<% @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éna.tld", "Sender_name") smtpMssg.To.Add (" [e-mail chránený]") “ pridanie adresy príjemcu smtpMssg.Subject = "Predmet e-mailu" „označenie predmetu listu smtpMssg.Body = "Text správy" “ označenie textu (telo) listu smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 “ označenie kódovania písmen smtpMssg.IsBodyHtml = false " označenie formátu písmena (true - HTML, false - nie HTML) Dim SmtpMail as New SmtpClient("smtp.site", 25) " deklarácia nového objektu typu "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network „označenie spôsobu doručenia listu SmtpMail.UseDefaultCredentials = False "štandardne zakázanie používania autorizačných poverení" SmtpMail.EnableSsl = False " zakáže potrebu používať zabezpečené pripojenie k serveru SmtpMail.Credentials = new NetworkCredential("postmaster@ doména.tld", "***heslo***") "uvedenie potrebných údajov (používateľské meno a heslo) na autorizáciu na serveri SMTP SmtpMail.Send(smtpMssg) “ odoslanie správy %>

Existuje aj zastaraná (a zastaraná) trieda SmtpMail (používajúca menný priestor System.Web.Mail). Nižšie je uvedený príklad jeho použitia pre jazyk VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " deklarácia nového objektu typu "MailMessage" smtpMssg.From = "Meno_odosielateľa doména.tld>" „Uvedenie mena a adresy odosielateľa smtpMssg.To = "admin@ doména.tld" “ uvedenie adresy príjemcu smtpMssg.BodyFormat = MailFormat.Text “ označenie formátu listu smtpMssg.BodyEncoding = Kódovanie.UTF8 "označuje kódovanie písmen smtpMssg.Subject = "Predmet e-mailu" „označenie predmetu listu smtpMssg.Body = "Text správy" “ označenie textu listu smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "označuje potrebu autorizácie SMTP na serveri smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ doména.tld") "používateľské meno na autorizáciu smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***heslo***") "heslo na autorizáciu SmtpMail.SmtpServer = "smtp.site" “ s uvedením adresy servera SMTP SmtpMail.Send(smtpMssg) “ odoslanie správy %>

Ako posielať e-maily pomocou ASP?

Upozorňujeme, že pri používaní nášho smtp servera je potrebná autorizácia, preto nezabudnite do skriptu pridať príslušné prístupové údaje, napríklad:

<% 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éna.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "heslo" .Update End with Set cdoMessage = CreateObject("CDO.Message") S cdoMessage Set .Configuration = iConfig .From = "Testovať používateľa doména.tld>" .Komu = "Používateľ " .Subject = "Dobrý deň, používateľ" .TextBody = "Túto správu píšem zo skriptu ASP." .Send End With Set cdoMessage = Nič Nastaviť iConfig = Nič %>

Niektoré CMS už majú vstavané nástroje na odosielanie korešpondencie alebo zodpovedajúce moduly; pozrime sa na tie najpopulárnejšie.

Wordpress

Pre tento CMS existuje špeciálny modul „WP Mail SMTP“, príklad jeho konfigurácie je popísaný na stránke modulu.

Venujte pozornosť ilustrácii v príklade, v našom poštovom systéme je potrebné použiť port 25 a nevyžaduje sa šifrovanie SSL.

Joomla

V administračnom paneli prejdite do časti „Všeobecné nastavenia“, vyberte kartu „Server“. V poli „Pošta“ musíte vybrať spôsob odoslania ako „Server SMTP“, v poliach „Adresa servera SMTP“ a „Prihlásenie SMTP“ a „Heslo SMTP“ zadajte príslušné podrobnosti o poštovom systéme, napríklad: smtp.site, box@vaša_doména a zodpovedajúce heslo.

Drupal

Tento CMS má aj vlastný modul pre prácu so serverom SMTP, založený na PHPMailer. Tento modul si môžete stiahnuť na jeho stránke na webe CMS Drupal, popis inštalácie modulu je dostupný v archíve spolu s ním.

NetCat

Tento CMS nemá vstavané funkcie pre prácu so serverom SMTP. Ak chcete odosielať poštu pomocou skriptov lokality, môžeme vám ponúknuť používanie nášho riešenia, na pripojenie je potrebné vykonať nasledujúce kroky:

  • Stiahnite si archív s potrebnými súbormi z našej webovej stránky ( send_auth_mail.php A mail.inc.php) a rozbaľte ho v počítači;
  • Upraviť súbor send_auth_mail.php z archívu s uvedením podrobností o pripojení k požadovanému serveru SMTP:

    • $mail_smtpServer = "smtp.site"; (adresa servera SMTP)
    • $mail_port = "25" ; (pripojovací port)
    • $mail_username = "[e-mail chránený]" ; (používateľské meno na autorizáciu na serveri SMTP)
    • $mail_password = "heslo"; (heslo pre autorizáciu na SMTP serveri)
  • Vytvorte záložnú kópiu súboru domain.tld/www/netcat/admin/mail.inc.php;
  • sťahovať súbory send_auth_mail.php A mail.inc.php na virtuálnu stránku v adresári doména.tld/www/netcat/admin/

doména.tld by mal byť nahradený názvom vašej domény.

Navrhované riešenie funguje so všetkými modulmi NetCat, ktoré na odosielanie pošty využívajú štandardné funkcie tohto CMS.




Hore