Pošiljanje e-pošte prek smtp s php avtorizacijo. Pošiljanje pošte prek SMTP v PHP. Pošiljanje php pošte prek nastavitve skripta SMTP

Pošlji PHP

Ta funkcija je privzeto implementirana kot pošiljanje e-pošte. Ta funkcija ne potrebuje strežnika tretje osebe za posredovanje e-pošte. Če želite preveriti pravilnost te funkcije, ustvarite datoteko test.php v mapi s spletnim mestom in vanjo postavite naslednjo kodo:

Kje namesto "E-NASLOVPREJEMNIK" Vnesite e-poštni naslov, na katerega želite poslati pismo.

Mesto ta datoteka v korenu vašega spletnega mesta.

Nato v naslovno vrstico vnesite www.YourDomain/test.php. Če na navedeni e-poštni naslov prejmete pismo, potem vaše gostovanje deluje pravilno s funkcijo pošiljanja pisem " Pošlji PHP". Možno je, da je pismo končalo med vsiljeno pošto, zato je treba tudi to preveriti.

Če je pismo prispelo v nerazumljivem kodiranju, spremenite vrstico: "Preverjanje pošiljanja pošte" na "Preverjanje pošiljanja pošte", "Content-type:text/html;charset=utf-8".

In ponovite pošiljanje pisma prek naslovne vrstice brskalnika.

Če po zgornjih manipulacijah testno pismo ne doseže končnega prejemnika, se morate obrniti na tehnično podporo gostovanja.

Med pomanjkljivostmi ta metoda Omeniti velja, da delo ni trajno ta metoda. Pri pošiljanju e-pošte lahko pride do motenj na strani gostovanja.

Glavna pomanjkljivost te metode je, da poštne storitve (gmail, mail.ru, yandex.ru) ne bodo prepoznale vseh pisem, poslanih na e-pošto strank, saj so bila poslana neposredno z vašega spletnega mesta.

Poštna storitev Gmail prikaže ta pisma z vprašajem in podpisom: "Sistem Gmail ni mogel potrditi, da je bilo to pismo poslano z domene Vaša domena. To je lahko neželena pošta."

Da bi se izognili tej situaciji .

SMTP (preprost protokol za prenos pošte)

SMTP - protokol za prenos pošte. Za nastavitev prenosa pošte s tem protokolom potrebujete sam strežnik SMTP. Najpogostejša možnost za uporabo korporativne (domene) pošte yandex.ru kot strežnika SMTP je https://pdd.yandex.ru/.

Najprej je potrebno račun (pošta) yandex, na podlagi katerega se bodo kreirala elektronska sporočila za vašo domeno: “naroči@VašaDomena” “info@VašaDomena”... Glavni račun ne bo nikjer viden in se uporablja samo za ustvarjanje domenskih elektronskih sporočil na njegovi podlagi v prihodnje.

Po prijavi v svoj osebni račun Pošta domene Yandex je ustvarjena s povezavo https://pdd.yandex.ru/. To je e-poštni naslov domene, ki ga bodo uporabniki videli v polju »Pošiljatelj«.

Polje »Pošiljatelj« je obvezno pri pošiljanju e-pošte prek SMTP. Uporaba SMTP za pošiljanje pisem, kombinacija " Domena" - "E-naslov", zato pisma prepoznajo poštne storitve.


Med pomanjkljivostmi te metode je treba omeniti nezmožnost "nalaganja" poštnega portreta domene, saj same poštne storitve še ne zagotavljajo te funkcije.

2019-08-05

Pozdravljeni, dragi obiskovalec!

Oprostite mi za zamudo pri posodabljanju bloga. A za to obstaja povsem razumljiva razlaga. Navsezadnje je bilo poletje, dača, gostje, gozd, voda in še veliko več, kar mi ni dovolilo, da bi se lotil vprašanj ustvarjanja spletnega mesta. Ampak zdaj sem se malo sprostil, gostje so odšli in mislim, da bom zdaj zagotovo lahko temu namenil ustrezno pozornost.

Torej, potem ko smo v prejšnjem članku pošto naše domene povezali z eno od poštnih storitev, si zdaj poglejmo, kako lahko pošiljate e-pošto s spletnega mesta. Še več, na način, da naša pisma ne končajo v SPAM-u, ampak so zanesljivo, z veliko verjetnostjo, dostavljena našim prejemnikom.

Na splošno obstaja vgrajena funkcija mail() za pošiljanje pisem v PHP. Vendar je treba opozoriti, da ima uporaba te možnosti kljub preprostosti te metode (v tem primeru je za pošiljanje pisem dovolj, da določite samo eno vrstico kode z določenimi parametri) pomembno pomanjkljivost, povezano s problemom SPAM .

Dejstvo je, da filtri za zaščito pred neželeno pošto poštnih strežnikov na strani prejemnika v resnici ne favorizirajo pisem, poslanih prek funkcije mail(). In v večini primerov so takšna sporočila filtrirana ali celo izbrisana, preden pridejo do naslovnika.

In da bi čim bolj odpravili takšne primere, se običajno uporablja druga možnost, pri kateri se pisma pošiljajo, kot da bi to storila poštna storitev tretje osebe.

Ta metoda se imenuje pošiljanje pošte prek SMTP z avtorizacijo. Kar si bomo danes ogledali na primeru oddaje obrazca povratne informacije. Poleg tega bomo za to uporabili dokaj dobro znano in priljubljeno knjižnico PHPMailer, ki vam omogoča preprosto organizacijo pošiljanja pisem prek SMTP.

  • Kako bomo pošiljali povratna pisma
  • Ustvarjanje obrazca za povratne informacije
  • Namestitev knjižnice PHPMailer
  • Izdelamo skripto za pošiljanje pošte preko SMTP
  • Preverjanje pošiljanja e-pošte
  • Izvorne datoteke spletnega mesta

Kako bomo pošiljali povratna pisma

Preden začnete praktično delo Po poslanih pismih s povratnimi informacijami se bomo najprej odločili, kako bomo to izvedli.

Obrazec za povratne informacije je zasnovan tako, da uporabniku omogoča komunikacijo z skrbnikom spletnega mesta, da posreduje svoje sporočilo. Običajno je ta obrazec sestavljen iz več polj in gumba »Pošlji«.

Načeloma je za pošiljanje e-pošte dovolj, da uporabite le nekaj polj, ki zagotavljajo dovolj podatkov o uporabniku in vsebini sporočila, kot so:

  • "Ime" - za vnos imena pošiljatelja sporočila;
  • "E-pošta" - za naslov E-naslov pošiljatelj;
  • "Zadeva sporočila";
  • "Besedilo sporočila".

Čeprav lahko dodate druge. Na primer telefonsko številko, če je to res potrebno.

V našem primeru bodo takšna pisma poslana na naslov skrbnika spletnega mesta iz pravega poštnega predala z avtorizacijo na poštni storitvi, s katero je povezana naša domena.

Ker smo se v prejšnjem članku osredotočili na preverjanje povezave domenske pošte s storitvijo Yandex.Mail, bomo pošiljali pošto za to možnost. Čeprav to ni pomembno. Spodaj boste videli tiste možnosti, ki vam bodo po spremembi omogočile pošiljanje e-pošte prek poštni strežnik Mail.ru.

Kot pravi poštni predal, iz katerega bomo pošiljali pisma, bomo uporabili račun novo ustvarjenega domenskega poštnega uporabnika, recimo z naslovom [e-pošta zaščitena]. In ta pisma bomo poslali na Poštni nabiralnik skrbnik [e-pošta zaščitena], ki smo ga predhodno ustvarili v prejšnjem članku.

Tako bo pošiljatelj pisma iz obrazca za povratne informacije nabiralnik [e-pošta zaščitena]., in prejemnik - [e-pošta zaščitena]. V tem primeru bodo vsi podatki o uporabniku, ki je poslal sporočilo z njegovo vsebino, posredovani v telesu poslanega pisma.

Ustvarjanje obrazca za povratne informacije

Ko smo se odločili za postopek pošiljanja pisem, bomo sedaj ustvarili obrazec za povratne informacije, s katerim bomo to storili.

Spodaj je koda HTML za ta obrazec, ki ga bomo postavili na stran "Stiki" (datoteka kontakty.php v imeniku člankov).

    "Članek" >

    Kontakti

    Povratne informacije

    "stik" akcija = "#" metoda = "post" >

    Obrazec za povratne informacije

    Za vsa vprašanja, zahteve in poslovne predloge nas lahko kontaktirate preko spodnjega obrazca za povratne informacije.

    "kontaktni blok" >

    "kontaktni vnos" >

    "besedilo" id = "Kontaktno ime" ime = "Kontaktno ime" naslov = "Ime mora biti v ruščini in vsebovati vsaj 3 znake" vzorec = "{3,}" obvezno >

  1. "prazen-kontakt" >

    "kontaktni vnos" >

    "E-naslov" id = "kontaktni-e-mail" ime = "kontaktni-e-mail" obvezno >

  2. "kontaktni subjekt" >

  3. "kontakt-komentar" >

  4. "kontaktni gumb" >

    "oddaj" ime = "kontaktni gumb" vrednost = "Pošlji" >

Slika 1 HTML koda obrazca za povratne informacije

Na naslednjem posnetku zaslona si lahko ogledate, kako na koncu izgleda obrazec za povratne informacije, prikazan tukaj.

torej zahtevani obrazec ustvarili. In zdaj lahko preidete na vprašanja obdelave in pošiljanja podatkov v obliki e-poštnega sporočila.

Namestitev knjižnice PHPMailer

Kot smo že omenili, bomo za pošiljanje pošte uporabljali knjižnico PHPMailer, ki bo zelo poenostavila pošiljanje e-pošte prek protokol SMTP z avtorizacijo v poštni storitvi tretje osebe.

Če ga želite namestiti, morate prenesti potrebne datoteke. To lahko storite v spletni storitvi GitHub z uporabo Composerja (upravljalnik odvisnosti od paketov za PHP). Ali preprosto prenesite potrebne datoteke na običajen način.

posnetek zaslona 73

Spodaj je stran spletne storitve GitHub, kjer je označena povezava do običajnega prenosa knjižnice PHPMailer.

Poleg tega Najnovejša različica 6.0.7, ki je bil shranjen v času pisanja tega članka, lahko prenesete iz priloženih materialov.

V vsakem primeru je treba nastalo arhivsko datoteko razpakirati, nato pa ekstrahirano mapo PHPMailer-master z vso njeno vsebino postaviti v koren mesta. Hkrati ga lahko zaradi enostavnosti preimenujete v PHPMailer. Spodaj je vsebina mape PHPMailer v korenskem imeniku spletnega mesta.

Tako smo namestili knjižnico PHPMailer. Po tem lahko začnemo ustvarjati skripto, s katero bomo pošiljali e-poštna sporočila z naše spletne strani.

Izdelamo skripto za pošiljanje pošte preko SMTP

Za sestavljanje skripta je dovolj, da uporabite priporočila za uporabo PHPMailerja, podana na strani GitHub, ki smo jih prej uporabili za prenos knjižnice.

Zlasti navajajo, da je na začetku skripta potrebno uvoziti razrede PHPMailer v globalni imenski prostor. In podane so posebne vrstice ustrezne kode. Obstajajo tudi primeri uporabe lastnosti in metod PHPMailerja, vključno z možnostjo pošiljanja pošte prek SMTP.

Če pa to ni dovolj, potem lahko uporabite tudi dokumentacijo, ki vsebuje opis vseh lastnosti in metod te knjižnice.

posnetek zaslona 74

Spodaj je koda skripta za pošiljanje pošte iz obrazca za povratne informacije prek SMTP z avtorizacijo. Kjer so vse vrstice, povezane s PHPMailerjem, podane z razlago in poudarjene s svetlim ozadjem.

Preostali del, vključno z delci, povezanimi s sprejemanjem in obdelavo podatkov iz obrazca, ki smo jih prej morali uporabljati v drugih procesorjih, je označen s temnim ozadjem. Prej so bili podrobno obravnavani v članku, ki je bil posebej posvečen vprašanjem pridobivanja in preverjanja podatkov iz obrazca v PHP. Kjer smo govorili tudi o univerzalni uporabniški funkciji za preverjanje in obdelavo podatkov obrazcev preveri_simbol().

Ta skript bomo postavili v isto datoteko kontakty.php, v kateri smo predhodno ustvarili obrazec za povratne informacije.

    //----Skripta za pošiljanje pošte prek SMTP z uporabo PHPMailer----

    //Uvozi razrede PHPMailer v globalni imenski prostor. Biti morajo na vrhu skripta, ne znotraj funkcije

    uporaba PHPMailer\PHPMailer\PHPMailer ;

    uporaba PHPMailer\PHPMailer\Izjema ;

    če (!prazno($_POST["contact-button" ])) (

    $name = $_POST["ime-stika"];

    $name = check_symbol ($name, "Ime", "1", "/^+\z/iu");

    $email = $_POST["kontaktni-e-mail" ];

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

    $subject = $_POST["contact-subject" ];

    $subject = check_symbol ($subject, "Subject sporočila" , "1" , "0" );

    $komentar = $_POST["kontaktni-komentar"];

    $komentar = kontrolni_simbol ($komentar, "Besedilo sporočila", "1" , "0" );

    če (!prazno($GLOBALS["opozorilo" ])) (

    $opozorilo = "Podatki obrazca niso bili poslani. Najdene so bile naslednje napake:\n".$opozorilo;

    vključujejo"alert.php" ;

    drugače {

    //Povezovanje knjižnice

    zahtevati"PHPMailer/src/PHPMailer.php" ;

    zahtevati"PHPMailer/src/Exception.php" ;

    zahtevati"PHPMailer/src/SMTP.php" ;

    $mail = novo PHPMailer(); //Inicializacija razreda

    $od = " [e-pošta zaščitena]" ; //E-poštni naslov, s katerega je pismo poslano

    $to = " [e-pošta zaščitena]" ; //Naslov prejemnika

    $mail -> isSMTP(); //Uporabi protokol SMTP

    $mail -> Host = "smtp.yandex.ru" ; //Naslov poštnega strežnika

    $mail -> SMTPAuth = prav ; //Omogoči avtorizacijski način

    $mail -> Uporabniško ime = " [e-pošta zaščitena]" ; //Prijava iz e-pošte domene, povezane z e-poštno storitvijo tretje osebe (v tem primeru Yandex.Mail)

    $pošta -> Geslo = "27MrDon89" ; //Geslo za domensko pošto

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

    $mail -> Port = "465" ; //Vrata strežnika SMTP

    $mail -> CharSet = "UTF-8" ; //Kodiranje

    $mail -> setFrom ($from, "Administrator"); //Naslov in ime pošiljatelja

    $mail -> addAddress ($to, "Administrator"); //Naslov in ime prejemnika

    $mail -> isHTML ( prav ); //Nastavi obliko elektronske pošte na HTML

    $pošta -> Zadeva = "Obrazec za povratne informacije je poslan"; //Zadeva elektronske pošte (naslov)

    $mail -> Telo = "

    Ime pošiljatelja: $name

    Naslov pošiljatelja: $e-pošta

    Zadeva sporočila: $predmet

    Vsebina sporočila: $komentar



    " ; //Vsebina sporočila

    $mail -> AltBody = "Besedilo nadomestne črke"; //Nadomestna e-pošta, če e-poštni odjemalec ne podpira zapisa HTML

    $mail -> SMTPDebug = 0 ; //Omogoči odpravljanje napak SMTP: 0 - izklopljeno (za običajno uporabo), 1 = sporočila odjemalcev, 2 - sporočila odjemalcev in strežnikov

    če($mail -> send()) (

    $opozorilo = "Sporočilo poslano"; //V pogovornem oknu brskalnika izpišite sporočilo o uspešnem pošiljanju pisma

    drugače {

    $opozorilo = "Napaka, e-pošte ni mogoče poslati: ".$mail -> ErrorInfo ; //Izpis sporočila o napaki

    vključujejo"alert.php" ;

Slika 5 Skripta za pošiljanje e-pošte prek SMTP z avtorizacijo

Kot lahko vidite, vse vrstice, ki so neposredno povezane s pošiljanjem e-poštnega sporočila, v katerem so navedene potrebne metode in lastnosti, spremljajo komentarji. Zato se nima smisla ponavljati, temveč se lahko zadržimo le pri nekaterih izmed njih, ki sicer zahtevajo dodatna pojasnila, in sicer:

1. Ker je pismo poslano iz poštne storitve tretje osebe, se tukaj uporabljajo nastavitve, ki ustrezajo določenemu strežniku SMTP. V tem primeru se za primer uporabe strežnika Yandex.Mail uporabijo naslednje vrednosti lastnosti:

  • Lastnina Gostitelj(pos.28) - naslov poštnega strežnika z vrednostjo smtp.yandex.ru;
  • Lastnina SMTPSecure
  • Lastnina Pristanišče

Te vrednosti lastnosti so bile vzete s strani Yandex.Help, prikazane na naslednjem posnetku zaslona.

Toda takšne informacije je mogoče dobiti tudi iz drugih virov. To storite tako, da v iskalnik vnesete ustrezno poizvedbo, na primer: »strežnik Yandex smtp«. Kje lahko najdete veliko število referenc o tej temi.

Na podoben način je mogoče pridobiti vrednosti nastavitev iz drugih strežnikov SMTP. Spodaj je posnetek zaslona strani s pomočjo Mail.ru, ki prikazuje nastavitve strežnika SMTP poštne storitve Mail.ru.

In tako je treba v primeru uporabe Mail.ru kot strežnika SMTP tretje osebe uporabiti naslednje vrednosti lastnosti razreda PHPMailer:

  • Lastnina Gostitelj(pos.28) - Naslov poštnega strežnika (smtp.mail.ru);
  • Lastnina SMTPSecure(poz.32) - šifrirni protokol (ssl);
  • Lastnina Pristanišče(poz. 33) - Vrata strežnika SMTP (465).

Podoben pristop je treba uporabiti za druge e-poštne storitve.

2. V lastnini Uporabniško ime(poz. 30) je treba navesti polni naslov domenskega predala. V tem primeru, " [e-pošta zaščitena]".

Če pa za pošiljanje pisem uporabljate račun, ki ni domenski poštni račun, temveč naslov, ki je neposredno povezan s poštno storitvijo, na primer " [e-pošta zaščitena]", potem mora biti prijava samo del naslova do znaka "@". V tem primeru bi imela prijava vrednost "feedback".

3. PHPMailer zagotavlja lastnost SMTPDebug(poz. 50), ki omogoča prikaz različnih stopenj napak na zaslonu brskalnika. Ta funkcija močno poenostavi iskanje težav pri odpravljanju napak v skriptu.

Običajno je v običajnem načinu, ko je vrednost nastavljena na 0, izpis podrobnih informacij o napaki onemogočen. Če pa se pojavijo težave pri pošiljanju pošte ali med odpravljanjem napak, je mogoče uporabiti druge vrednosti za prikaz bolj smiselnih informacij o napaki.

Da bi videli, kako to izgleda v praksi, začasno vnesemo napako v nastavitve. Na primer, v geslu domene za pošto (last Geslo, poz.31). In tudi za prikaz podrobnih informacij o napaki, ki je začasno nastavljena v lastnosti SMTPDebug(poz.50) vrednost 1. Potem, ko je vse razhroščeno in preverjeno, bomo onemogočili način odpravljanja napak SMTP in 1 zamenjali z 0.

V zadnjem delu skripta, po določitvi vseh potrebnih lastnosti in metod, se metoda uporabi za pošiljanje pisma pošlji()) (poz. 51). In če je pismo poslano, in način pošlji() za predmet $mail vrne true, nato v pogovornem oknu brskalnika prek spremenljivke $opozorilo Prikaže se sporočilo o uspešnem pošiljanju pošte (poz. 52).

Če iz nekega razloga pošte ni bilo mogoče poslati in zato metoda ni mogla vrniti vrednosti true, bo to stanje spremljalo ustrezno sporočilo o napaki (poz. 55).

Preverjanje pošiljanja e-pošte

Ko smo ustvarili skripto za pošiljanje pošte, moramo seveda pogledati rezultat naše »ustvarjalnosti«. Ali smo tukaj vse upoštevali in nismo naredili nobene napake?

Če želite to narediti, poskusimo, kot je bilo predvideno, poslati sporočilo uporabnika skrbniku spletnega mesta iz obrazca za povratne informacije. Spodaj je posnetek zaslona obrazca za povratne informacije z izpolnjenimi polji pred oddajo.

In tukaj je rezultat oddaje obrazca.

Kjer je iz sporočila v pogovornem oknu brskalnika razvidno, da pisma ni mogoče poslati zaradi težave s povezavo SMTP.

Ampak, saj je zdaj premoženje SMTPDebug(poz. 50) je dodeljena vrednost 1, potem lahko vidimo podrobne informacije o nastali napaki in ugotovimo vzrok njenega nastanka.

Naslednji posnetek zaslona prikazuje, da je bila pri poskusu povezave zaznana napaka pri preverjanju pristnosti, kar pomeni uporabo napačne prijave ali gesla.

Po odpravi neujemanja gesla (prej je bilo uporabljeno napačno geslo, da smo lahko preverili izpis dodatnih informacij o napaki), bomo poskusili ponovno poslati pošto.

Tokrat je bilo vse videti dobro in prejeli smo sporočilo, da je bila pošta uspešno poslana. Očitno, razen namerno vnesene začasne napake v geslu domenske pošte, drugih napak nismo naredili.

Da pa se prepričamo, da je bilo pismo dejansko dostavljeno naslovniku, vpišemo pošto z naslovom [e-pošta zaščitena] in poglej rezultat.

Kot vidite, pismo z naslova [e-pošta zaščitena], s katerega smo poslali e-poštno sporočilo z imenom »Povratne informacije«, je uspešno prispelo do skrbnika strani. Hkrati telo pisma vsebuje vso vsebino, ki smo jo ustvarili v skriptu s pomočjo podatkov, prejetih iz obrazca za povratne informacije, in sicer:

  • Ime pošiljatelja: Nikolay;
  • Naslov pošiljatelja: [e-pošta zaščitena];
  • Zadeva sporočila: Preverjanje pošiljanja pošte;
  • Vsebina sporočila: Testno sporočilo.

Zdaj, po uspešnem preverjanju pošiljanja pošte, lahko onemogočite način odpravljanja napak SMTP tako, da dodelite lastnost SMTPDebug(pol.50) vrednost 0.

Tako smo zaključili nalogo izdelave orodja za pošiljanje pošte preko SMTP z avtorizacijo preko poštnega strežnika tretje osebe.

Na primer, v naslednjem članku si bomo ogledali, kako poslati potrditvena e-poštna sporočila za obnovitev registriranih podatkov uporabniškega računa.

Izvorne datoteke spletnega mesta

Izvorne datoteke spletnega mesta s posodobitvami, ki so bile narejene v tem članku, lahko prenesete iz priloženih dodatnih gradiv:

  • datoteke imenika www
  • Tabele baze podatkov MySQL

Pošiljanje pošte prek SMTP z lokalnega strežnika vam omogoča, da preizkusite pošiljanje sporočil s spletnega mesta, ki se nahaja na lokalnem računalniku ali preprosteje na lokalnem strežniku. Če želite to narediti, lahko uporabite katero koli poštno storitev Yandex, Google ali mail.ru.

Prvič, SMTP (Simple Mail Transfer Protocol) je široko uporabljen omrežni protokol, zasnovan za prenos e-pošte prek omrežij TCP/IP. In vse priljubljene e-poštne storitve imajo take protokole.

S prihodom lokalnih strežnikov ni bilo več treba izbirati ponudnika gostovanja za preverjanje delovanja posameznih skript ali cms sistemov, še manj pa za to plačevati. Veliko lažje je vse preizkusiti na računalniku in potem lahko vsem pokažeš, kaj si »naredil«.

Mnogi od teh strežnikov že imajo vgrajeno programsko opremo in potrebno funkcionalnost za delo s pošto, le pravilno jo morate konfigurirati.

Za preverjanje delovanja takšne pošte je potreben najmanjši minimum:

  • Openserver lahko uporabljate kot lokalni strežnik.
  • In preprost scenarij, katerega predlogo najdete tik spodaj.
  • Uporabite lahko kateri koli poštni strežnik.

Pošiljanje php pošte prek nastavitve skripta SMTP

Urediti je treba preprosto skriptno predlogo, ki jo lahko kopirate spodaj ali prenesete s stotin podobnih spletnih mest.

Najprej morate spremeniti nekaj vrednosti v predlogi skripta.
do — spremenite poštni naslov, na katerega bo poslano e-poštno sporočilo.
predmet - predmet pisma
sporočilo — samo sporočilo ali telo pisma.

Primer mojega scenarija:

Lahko pa seveda malo razširite funkcionalnost in naredite, da skripta prikaže sporočilo o pošiljanju pošte. Čeprav je v resnici strežnik SMTP tisti, ki pošilja, skript pa samo ustvari sporočilo.

Na primer, lahko napišete tole:

Vse zamenjane vrednosti morajo biti v narekovajih, sicer bo skript vrgel napako. Po tem lahko skript shranite v mapo lokalnega strežnika.

Na primer: domene/pošlji/index.php in začnite nastavljati pošiljanje pošte prek SMTP opensrerver.

Pošta bo prispela na kateri koli naslov, ki bo podan v skriptu namesto vrednosti 'za' , vendar bo to pošto obdelal in poslal natanko tisti SMTP, ki bo naveden v nastavitvah odprtega strežnika.

  1. Zagon strežnika
  2. Odprite modul openserver z nastavitvami v meniju »mail«.
  3. Izpolnimo vsa polja, kot je prikazano na sliki, medtem ko zamenjamo uporabniško ime, e-pošto pošiljatelja in geslo iz pravega poštnega predala Yandex.

Nastavitve shranimo in po ponovnem zagonu strežnika lahko dostopate do samega skripta. V mapi »Moja spletna mesta« odprite mapo »pošlji«, v kateri se nahaja predhodno shranjen skript index.php.

Takoj ko se dostopi do tega skripta, se v novem oknu brskalnika prikažejo informacije, ki kažejo, da je skript dokončan.

Po tem morate preveriti svoj nabiralnik, katerega naslov je bil naveden v skripti, da vidite, ali je pismo prispelo.

Če ga ni, pomeni, da nekaj ni pravilno konfigurirano ali pa je pismo končalo v mapi z neželeno pošto.

Vse ostale nastavitve izgledajo podobno, a za vsak slučaj dodatne informacije ne bodo škodile.

Če želite nastaviti pošiljanje pošte prek SMTP mail ru, morate preprosto zamenjati parametre Yandex s parametri mail ru.

In da ne bi vsakič znova zgradili lokalnega strežnika, je najbolje, da konfigurirate različne profile openserver. Kako to storiti, je prikazano v video vadnici.

V tem primeru bo dovolj, da preprosto naložite profil in vse nastavitve, ki so bile določene za ta profil, bodo na voljo po ponovnem zagonu strežnika. To je zelo priročna stvar in deluje zelo preprosto.

Za vsak profil (sploh ni pomembno, kako se bo imenoval) je treba narediti svoje nastavitve, razen če seveda nameravate uporabljati skripte, cms sisteme in aplikacije z različnimi parametri.
Če ne, potem lahko opravite s privzetimi nastavitvami.

Kar zadeva SMTP mail ru, je tukaj vse enako.

Podatki Yandex se spremenijo v podatke mail ru

Pošiljanje pošte preko smtp google

Če želite nastaviti pošiljanje pošte prek Google SMTP, se morate malo potruditi.

Prvič, ustvariti profil v Googlu je težje kot v drugih sistemih Yandex in mail ru
Drugič, sistem ne bo preprosto spustil pisma skozi, tudi če navedete svoje podatke za prijavo. Za začetek bo poslala pismo z vsemi potrebnimi informacijami o nadaljnjih navodilih.

V nasprotnem primeru Za Google je konfiguriran na popolnoma enak način. Samo vsi podatki se spremenijo.

Če želite konfigurirati pošiljanje pošte prek drugega SMTP, bodo vsi podatki približno enaki.

Če se vam je vse izšlo in so pisma dosegla določenega naslovnika, je bilo vse opravljeno pravilno. Super bi bilo, če bi svoje izkušnje delili v komentarjih.

Da bi določeno spletno mesto lahko delovalo učinkovito in produktivno, je treba k njegovi izdelavi pristopiti čim bolj odgovorno in skrbno. Posebno pozornost si zasluži izbira sistema, ki bo uporabljen za izdelavo spletne trgovine. Dejstvo je, da mora komercialna platforma, specializirana za prodajo blaga ali storitev, omogočati izvajanje vseh potrebnih funkcionalnosti in biti enostavna za uporabo, tako za skrbnike, ki sodelujejo pri vzdrževanju in polnjenju spletnih mest, kot za stranke spletnih trgovin. Mnogi ljudje in podjetja, ki se soočajo z vprašanjem izbire primernega CMS zase, analizirajo, ali izbrati Magento ali OkayCMS. Primerjajmo lastnosti in zmogljivosti teh motorjev spletnih mest.

Pri delu na lastnem spletnem mestu bo morala oseba ali podjetje vložiti veliko truda - le v tem primeru lahko računate na pozitivne rezultate in pridobitev resnično učinkovitega orodja. Eno izmed temeljnih vprašanj, ki si jih je treba rešiti že pred začetkom izdelave spletne strani, bo, kako se odločiti za najprimernejšo možnost CMS. Nato bomo primerjali dva CMS: Joomla ali OkayCMS in se posvetili značilnostim vsakega od njih.

Imeti lastno spletno stran je eden temeljnih pogojev za učinkovito in uspešno poslovanje. Statistika jasno kaže na porast nakupov različnega blaga in naročil storitev preko interneta. Glede na to se večina gospodarskih družb že zaveda potrebe po lastni spletni strani. Vendar samo dejstvo, da imate internetni vir, ni dovolj za računanje na njegovo učinkovitost, donosnost in pričakovane poslovne koristi.

Ko se pripravljate na ustvarjanje lastne spletne strani ali odprtje spletne trgovine, morate upoštevati in analizirati številna vprašanja, pa tudi rešiti različne težave. Samo v tem primeru lahko računate na dejstvo, da bo vaš projekt prinesel pozitivne rezultate in da bo lahko v celoti izpolnil vaša pričakovanja. Med različnimi vprašanji, povezanimi z razvojem spletne trgovine, si posebno pozornost zasluži vprašanje izbire CMS. Da se boste lažje odločili za optimalen motor zase, znotraj

Pri načrtovanju izdelave lastne spletne strani za bodočo spletno trgovino se dokaj veliko število ljudi in celo podjetij, specializiranih za prodajo, znajde pred težko in izjemno pomembno izbiro: katerega od obstoječih CMS izbrati. Če razmišljate, kaj izbrati: PrestaShop ali OkayCMS, vam predlagamo, da preberete ta članek, v katerem bomo primerjali ta dva sistema za ustvarjanje spletnih strani, zlasti spletnih trgovin.

Ker je pošiljanje anonimnih sporočil z navideznih Windows gostiteljskih strežnikov prepovedano, naj pošiljanje pisem poteka preko SMTP strežnika, za kar je možno uporabiti tudi naš poštni sistem.

Kako pošiljati e-pošto z PHP?

Uporaba katerega koli razreda PHP, ki podpira avtorizacijo na strežniku smtp. Uporabite lahko na primer nabor razredov PHPMailer.

Uporabite lahko tudi naš primer, ki implementira pošiljanje pisem s strežnikom smtp, ki zahteva avtorizacijo. Zato ne pozabite skriptu dodati ustreznih podrobnosti o dostopu, na primer:

// Če morate prikazati dnevnik seje SMTP, lahko odkomentirate naslednjo vrstico. // $_SERVER["debug"] = res; funkcija MailSmtp ($reciever, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // Naslov strežnika SMTP$smtp_port = 25 ; // Vrata strežnika SMTP$smtp_user = " [e-pošta zaščitena]" ; // Uporabniško ime za avtorizacijo na strežniku SMTP$smtp_password = "pAsSwORd" ; // Geslo za avtorizacijo na strežniku SMTP$mail_from = " [e-pošta zaščitena]" ; // Nabiralnik, iz katerega je pismo poslano$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sock, 512); if (! $sock ) ( printf ( "Vtičnica ni ustvarjena\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "AUTH LOGIN"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock, "MAIL OD:<" . $mail_from . ">"); smtp_msg ($sock, "RCPT TO:<" . $reciever . ">"); smtp_msg ($sock, "DATA"); $headers = "Zadeva: ". $subject. "\r\n" . $headers; $data = $headers. "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) funkcija smtp_msg ($sock , $msg ) ( če ( ! $sock ) ( printf ("Pokvarjena vtičnica!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Pošljite od nas : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512); if (! $sock ) ( printf ( "Vtičnica je navzdol\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Pridobljeno s strežnika: %s
" , nl2br (htmlspecialchars ($str )); ) $e = eksplozija (" ", $str ); $code = array_shift ($e); $str = implode ( " ", $e); if ($code > 499 ) ( printf ( "Težave s pogovorom SMTP.

Koda %d.
Sporočilo %s
"
, $code, $str); izhod(1); ) ) ) ?>

Prenesite primer že pripravljenega skripta s funkcijo MailSmtp(): smtpauth.php.sample

Zgoraj opisano funkcijo MailSmtp() lahko uporabite za neposredno zamenjavo funkcije mail(); razmislite o primeru najpreprostejše oblike v PHP:

// Glave sporočil, določajo kodiranje sporočil, polja From, To itd.$headers = "Različica MIME: 1.0\r\n" ; $headers .= "Vrsta vsebine: besedilo/html; nabor znakov=windows-1251\r\n"; $headers .= "Za: $to \r\n" ; $headers .= "Od: Ime pošiljatelja " ; // pošta ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
Komu: Zadeva: Besedilo: 
 
 

Da bi ta obrazec deloval brez funkcije mail(), smo vključili datoteko smtpauth.php prek require_once in poklicali funkcijo MailSmtp(), opisano v njej, z argumenti, podobnimi mail(). Hkrati smo komentirali sam klic mail() v kodi, da bi se izognili napakam pri izvajanju skripta.

Kako poslati e-pošto z uporabo ASP.NET?

Če uporabljate različico 2.0, uporabite razred MailMessage System.Net.Mail), dobro opisano.

Spodaj so primeri njegove uporabe za jezika C# in VisualBasic:

Primer za jezik C#:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // ustvarjanje nove črke message.To.Add(" [e-pošta zaščitena]"); // dodajanje naslova prejemnika sporočilo.Od = nov poštni naslov("od@ domena.tld", "Ime pošiljatelja"); // z navedbo imena in naslova pošiljatelja message.Subject = "Zadeva sporočila"; // navedba predmeta pisma message.BodyEncoding = System.Text.Encoding.UTF8; // določanje črkovnega kodiranja message.IsBodyHtml = false; // določanje oblike črk (true - HTML, false - ne HTML) message.Body = "Besedilo sporočila"; // določanje besedila (telesa) pisma SmtpClient client = new SmtpClient("smtp.site",25); // ustvarjanje nove povezave s strežnikom "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // definira način pošiljanja sporočil client.EnableSsl = false; // onemogoči potrebo po uporabi varne povezave s strežnikom client.UseDefaultCredentials = false; // onemogoči uporabo privzetih podrobnosti avtorizacije client.Credentials = new NetworkCredential("postmaster@ domena.tld", "***geslo***"); // podajanje potrebnih podrobnosti (uporabniško ime in geslo) za avtorizacijo na strežniku SMTP odjemalec.Pošlji(sporočilo); // Pošlji sporočilo %>

Prenesite primer dokončanega obrazca, ki prikazuje uporabo te metode: MailForm.aspx.

Primer za jezik 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@domena.tld", "Ime_pošiljatelja") smtpMssg.To.Add (" [e-pošta zaščitena]") " dodajanje naslova prejemnika smtpMssg.Subject = "Zadeva elektronske pošte" "navedba predmeta pisma smtpMssg.Body = "Besedilo sporočila" " navedba besedila (telesa) pisma smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " navedba črkovnega kodiranja smtpMssg.IsBodyHtml = false " navedba oblike črke (true - HTML, false - ni HTML) Zatemni SmtpMail kot novega SmtpClient("smtp.site", 25) " deklaracija novega objekta tipa "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "navedba načina dostave pisma SmtpMail.UseDefaultCredentials = False "privzeto onemogočanje uporabe avtorizacijskih poverilnic" SmtpMail.EnableSsl = False " onemogoči potrebo po uporabi varne povezave s strežnikom SmtpMail.Credentials = new NetworkCredential("postmaster@ domena.tld", "***geslo***") ", ki navaja potrebne podrobnosti (uporabniško ime in geslo) za avtorizacijo na strežniku SMTP SmtpMail.Send(smtpMssg) " pošiljanje sporočila %>

Obstaja tudi zastarel (in zastarel) razred SmtpMail (z uporabo imenskega prostora System.Web.Mail). Spodaj je primer njegove uporabe za jezik VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " deklaracija novega objekta tipa "MailMessage" smtpMssg.From = "Ime_pošiljatelja domena.tld>" „Navedba imena in naslova pošiljatelja smtpMssg.To = "admin@ domena.tld" " navedba naslova prejemnika smtpMssg.BodyFormat = MailFormat.Text " navedba oblike črke smtpMssg.BodyEncoding = Encoding.UTF8 ", ki označuje črkovno kodiranje smtpMssg.Subject = "Zadeva elektronske pošte" "navedba predmeta pisma smtpMssg.Body = "Besedilo sporočila" " navedba besedila pisma smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) ", kar kaže na potrebo po avtorizaciji SMTP na strežniku smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domena.tld") "uporabniško ime za avtorizacijo smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***geslo***") "geslo za avtorizacijo SmtpMail.SmtpServer = "smtp.site" ", ki določa naslov strežnika SMTP SmtpMail.Send(smtpMssg) " pošiljanje sporočila %>

Kako pošiljati e-pošto z ASP?

Upoštevajte, da je pri uporabi našega strežnika smtp potrebna avtorizacija, zato ne pozabite skriptu dodati ustreznih podrobnosti o dostopu, na primer:

<% 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@domena.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "geslo" .Update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = iConfig .From = "Testni uporabnik domena.tld>" .To = "Uporabnik " .Subject = "Pozdravljeni, uporabnik" .TextBody = "To sporočilo pišem iz skripta ASP." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

Nekateri CMS že imajo vgrajena orodja za pošiljanje korespondence ali ustrezne module; poglejmo najbolj priljubljene.

Wordpress

Za ta CMS obstaja poseben modul "WP Mail SMTP", primer njegove konfiguracije je opisan na strani modula.

Bodite pozorni na ilustracijo v primeru, v našem poštnem sistemu je treba uporabiti vrata 25 in SSL šifriranje ni potrebno.

Joomla

Na skrbniški plošči pojdite na razdelek »Splošne nastavitve«, izberite zavihek »Strežnik«. V polju »Pošta« morate izbrati način pošiljanja kot »strežnik SMTP«, v poljih »naslov strežnika SMTP« ter »prijava SMTP« in »geslo SMTP« določite ustrezne podrobnosti poštnega sistema, na primer: smtp.site, box@vaša_domena in ustrezno geslo.

Drupal

Ta CMS ima tudi svoj modul za delo s strežnikom SMTP, ki temelji na PHPMailer. Ta modul lahko prenesete na njegovi strani na spletnem mestu CMS Drupal, opis namestitve modula je na voljo v arhivu z njim.

NetCat

Ta CMS nima vgrajenih funkcij za delo s strežnikom SMTP. Za pošiljanje pošte s skripti spletnega mesta vam lahko ponudimo uporabo naše rešitve; za povezavo morate izvesti naslednje korake:

  • Prenesite arhiv s potrebnimi datotekami z našega spletnega mesta ( send_auth_mail.php in mail.inc.php) in ga odpakirajte v računalnik;
  • Uredi datoteko send_auth_mail.php iz arhiva in v njem navedite podrobnosti povezave z želenim strežnikom SMTP:

    • $mail_smtpServer = "smtp.site"; (naslov strežnika SMTP)
    • $mail_port = "25" ; (priključna vrata)
    • $mail_uporabniško ime = "[e-pošta zaščitena]" ; (uporabniško ime za avtorizacijo na SMTP strežniku)
    • $mail_password = "Geslo"; (geslo za avtorizacijo na SMTP strežniku)
  • Ustvarite varnostno kopijo datoteke domena.tld/www/netcat/admin/mail.inc.php;
  • prenos datotek send_auth_mail.php in mail.inc.php na virtualno mesto v imeniku domena.tld/www/netcat/admin/

domena.tld zamenjati z imenom vaše domene.

Predlagana rešitev deluje z vsemi moduli NetCat, ki uporabljajo standardne funkcije tega CMS za pošiljanje pošte.




Vrh