Php pašto siuntimas per Yandex smtp. Laiškų siuntimas per SMTP iš vietinio serverio

Pradžia / Programų diegimas

PHPMailer yra labai patogi ir populiari biblioteka siunčiant el pranešimus iš jūsų svetainės. Šiame straipsnyje aprašomi pagrindiniai bibliotekos parametrai ir pateikiami pranešimų siuntimo kodų pavyzdžiai. „PHPMailer“ asortimente yra turbūt visko, ko galite norėti dirbant su paštu: siuntimą įvairiais būdais, per skirtingus serverius, įskaitant per smtp, galimybė užšifruoti ir pasirašyti jūsų laiškus, kad jie nepatektų į šlamštą ir dar daugiau.

PHPMailer biblioteką galite atsisiųsti iš https://github.com/PHPMailer/PHPMailer (mygtukas „Klonuoti arba atsisiųsti“).

Pirmiausia pažiūrėsiu į porą paprasti pavyzdžiai kad būtų aišku, kaip siųsti el. laiškus naudojant PHPMailer.

Laiškų siuntimas per mail() funkciją naudojant PHPMailer

Jei norite siųsti el. laiškus iš savo prieglobos per savo pašto serveris, tada viskas yra gana paprasta ir atrodys maždaug taip:

// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; // Sukurti laišką $mail = new PHPMailer(); $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // kieno (el. pašto adresas ir vardas) $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam (el. paštas ir vardas) $mail->Subject = "Test"; // laiško tema // html tekstas raidės $mail->msgHTML("

Sveiki!

Tai yra bandomasis laiškas.

"); // Siųsti if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail->ErrorInfo; )

Kaip matote, viskas gana paprasta: pajungiame biblioteką, užpildome iš ko, kam, laiško temą, tekstą ir išsiunčiame. Tokiu būdu el. laiškų siuntimas veiks tik iš jūsų domene esančių el. pašto adresų (nebent jie susieti su kitais el. pašto adresais).

Laiškų siuntimas per SMTP naudojant PHPMailer naudojant Yandex ir Google pavyzdį

Taip pat galite išsiųsti laišką per kitą pašto dėžutę, pavyzdžiui, per Yandex. Kodas atrodys maždaug taip:

// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; naudoti PHPMailer\PHPMailer\SMTP; reikalauti "PHPMailer/PHPMailer.php"; reikalauti "PHPMailer/SMTP.php"; // Sukurti laišką $mail = new PHPMailer(); $paštas->isSMTP(); // Siuntimas per SMTP $mail->Host = "smtp.yandex.ru"; // SMTP serverio adresas $mail->SMTPAuth = true; // Įjungti SMTP autentifikavimą $mail->Vartotojo vardas = "prisijungti"; // jūsų vartotojo vardas (be domeno ir @) $mail->Password = "slaptažodis"; // jūsų slaptažodis $mail->SMTPSecure = "ssl"; // ssl šifravimas $ paštas->Privadas = 465; // ryšio prievadas $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // iš kurio $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam $mail->Subject = "Test"; $mail->msgHTML("

Sveiki!

Tai yra bandomasis laiškas.

"); // Siųsti if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail->ErrorInfo; )

Laiškų siuntimas per Google turi vieną įspėjimą: reikia google paskyra leisti prieiti prie nepatikimų programų. Norėdami tai padaryti, eikite į savo paskyrą https://myaccount.google.com, eikite į sauga, eikite į skyrių „Nepatikimos programos, turinčios prieigą prie jūsų paskyros“ ir ten perjunkite į „Leidžiama“. Rašymo metu šis puslapis yra https://myaccount.google.com/u/0/lesssecureapps.

$mail->Host = "smtp.gmail.com"; // SMTP serverio adresas $mail->SMTPAuth = true; // Įjungti SMTP autentifikavimą $mail->Vartotojo vardas = "prisijungti"; // jūsų vartotojo vardas $mail->Slaptažodis = "slaptažodis"; // jūsų slaptažodis $mail->SMTPSecure = "ssl"; // ssl šifravimas $ paštas->Privadas = 465; // ryšio prievadas

Jei pirmą kartą naudojate programą, skirtą siųsti per smtp, patartina naudoti papildomai prieš siunčiant $paštas->SMTPDebug = 1; gauti visus pranešimus iš kliento ir smtp serverio, t.y. Visas prisijungimo, autorizacijos ir tt procesas bus rodomas ekrane, o tai labai naudinga derinant programą.

Laiško su priedu siuntimas naudojant PHPMailer

Čia viskas gana paprasta, tereikia naudoti metodą pridėti Priedas. Pateiksiu pavyzdį ir tuo pačiu pademonstruosiu dar keletą papildomos funkcijos:

// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; naudoti PHPMailer\PHPMailer\Exception; reikalauti "PHPMailer/PHPMailer.php"; reikalauti "PHPMailer/Exception.php"; // Sukurti laišką $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // iš kurio $mail->addReplyTo(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); // grąžinimo adresas $mail->addAddress(" [apsaugotas el. paštas]", "Vasya Petrov"); // kam $mail->Subject = "Test"; // tema $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // gauti "body" laiško iš failo $mail->AltBody = "Paprasto teksto laiškas" // paprasto teksto raidė, jei klientas nepalaiko html $mail->addAttachment("mano_failas.txt" // pridėti vieną failą $mail-); >addAttachment("phpmailer) .jpg"); // pridėti antrą failą // Send if ($mail->send()) ( echo "Pranešimas išsiųstas!"; ) else ( echo "Klaida: " . $mail- > ErrorInfo;

Galite pridėti kelis gavėjų adresus naudodami addAddress. Arba, jei reikia, galite, priešingai, išvalyti visus gavėjų adresus naudodami šį metodą ClearAddresses (). Galite išvalyti visus priedus naudodami išvalyti priedus ().

Taip pat galite naudoti AddEmbeddedImage laiško pridėti priedą (dažniausiai paveikslėlį), kuris skirtas naudoti html kode ir kurio nebus galima atsisiųsti. Paveikslėlio naudojimo laiške, kurio negalima atsisiųsti, pavyzdys:

// Įtraukti PHPMailer biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; //Sukurti laišką $mail = new PHPMailer; $paštas->IsHTML(tiesa); $mail->setFrom(" [apsaugotas el. paštas]", "Ivanas Ivanovas"); $paštas->adresas(" [apsaugotas el. paštas]", "Vasya Petrov"); $paštas->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $paštas->Body = "

Vaizdas html kode

"; // Siųsti $mail-> send();

Taigi galite siųsti raidės su vaizdais, kurie yra tik laiško tekste, bet negali būti atsisiunčiami kaip priedas. Šiuos vaizdus galima naudoti bet kurioje laiško html kode, tereikia nurodyti vaizdo cid, kurį naudojote AddEmbeddedImage, o ne URL adresą.

Pasirašytų ir užšifruotų laiškų siuntimas per PHPMailer

Pagal numatytuosius nustatymus PHPMailer užšifruoja visus išsiųstus pranešimus. El. laiškų šifravimą galite išjungti tik siųsdami el. laiškus per SMTP naudodami kodą:

$paštas->SMTPSecure = false; $paštas->SMTPAutoTLS = false;

Į laišką pasirašyti DKIM parašu, turite atlikti kelis veiksmus:

  • Generuokite privačius ir viešuosius savo domeno raktus
  • Pridėkite DNS įrašą TXT domenui su viešuoju raktu
  • Prieš siųsdami el. laišką, sukonfigūruokite DKIM parašą PHPMailer

Dabar kiekvieną žingsnį aprašysiu šiek tiek išsamiau.

Privačių ir viešųjų raktų generavimas

Jei turite „Linux“ prieglobą ir turite prieigą prie „Shell“, tada sugeneruoti pagrindinius failus yra taip pat paprasta, kaip išlukštenti kriaušes, su įprastomis vartotojo teisėmis paleisti tik 2 komandas:

Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout

Atitinkamai, testas-privatus.pem Ir test-public.pem- tai privatūs ir viešieji raktai. Turite juos išsaugoti aplanke, kurio negalės pasiekti svetainės lankytojai ar kas nors kitas, išskyrus jus.

Jei apvalkale neįmanoma vykdyti komandų, tada norėdami sugeneruoti privačius ir viešuosius raktus ir išsaugoti juos failuose, galite naudoti šį kodą:

$domenas = "test.ru"; // jūsų domenas $privatekeyfile = "test-private.pem"; // failo, kuriame bus įrašytas privatus raktas, pavadinimas $publickeyfile = "test-public.pem"; // failo, kuriame bus įrašytas viešasis raktas pavadinimas if (file_exists($privatekeyfile)) ( echo "

Naudojant esamus raktus

"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "

Sukurti raktus"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file, $keyget_Keyple); ils ($ pk ; $viešasis raktas = $pubKey["raktas"];

Privatus raktas (išlikti privatus!):

". $privatekey."
"; aidas"

Viešasis raktas:

". $viešasis raktas."
";

Dėmesio! Nepamirškite įsitikinti, kad aplankas, kuriame bus saugomi failai, yra įrašomas.

DNS įrašo pridėjimas su viešuoju raktu

DNS įrašas reikalingas, kad pašto serveriai, kurie gaus jūsų laiškus, galėtų patikrinti laiško parašą skaitydami jūsų domeno DNS įrašą. Paprastai galite pridėti DNS įrašą savo domeno valdymo skydelyje arba prieglobos valdymo skydelyje. Jei nežinote, kaip pridėti įrašą, susisiekite su prieglobos paslaugų teikėjo palaikymo komanda.

Turite pridėti tokį DNS įrašą:

Įrašo pavadinimas: mail._domainkey.test.ru. (pabaigoje yra taškas ".")

TTL: 3600 (arba kuris bus numatytasis)

Įrašo tipas: TXT

Reikšmė: v=DKIM1; h = sha256; t=s; p=YOUR_PUBLIC_KEY

Įrašo pavadinime test.ru turi būti pakeistas jūsų domeno vardu. Pakeičiate žodžius „YOUR_PUBLIC_KEY“ tekstu, kurį gavote atlikdami ankstesnį veiksmą po „Viešasis raktas“, be „-----BEGIN VIEŠAS RAKTAS-----“ ir „-----END VIEŠAS RAKTAS- -- --“, tik pats raktas. Šiuo atveju reikalingos visos pagrindinės eilutės sujungti į vieną ilgą eilutę kad nebūtų eilučių pertraukų.

DKIM parašo nustatymas PHPMailer ir el

Dabar belieka prieš siunčiant laišką padaryti kelis PHPMailer nustatymus ir jis bus pasirašytas. Manau, kad šis pavyzdys viską paaiškins:

// Įtraukti biblioteką naudoti PHPMailer\PHPMailer\PHPMailer; reikalauti "PHPMailer/PHPMailer.php"; // Sukurti laišką $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [apsaugotas el. paštas]"); $paštas->adresas(" [apsaugotas el. paštas]"); $mail->Subject = "Tai bandymas"; $mail->msgHTML("

Tai yra testas

"); // DKIM parašo nustatymas $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "paštas"; // Siųsti $ paštas- >siųsti();

Žinoma test.ru turėtumėte pakeisti savo domeno vardą ir testas-privatus.pemį visą privataus rakto failo kelią ir pavadinimą, kuris buvo sukurtas rakto generavimo etape.

Dabar jūsų el. laiškai, išsiųsti per PHPMailer, bus pasirašyti DKIM su jūsų privačiu raktu.

Tam, kad tam tikra svetainė turėtų galimybę dirbti efektyviai ir produktyviai, į jos kūrimą reikėtų žiūrėti kiek įmanoma atsakingiau ir atidžiau. Ypatingo dėmesio nusipelno sistemos, kuri bus naudojama kuriant internetinę parduotuvę, pasirinkimas. Faktas yra tai, kad komercinė platforma, kurios specializacija yra prekių ar paslaugų pardavimas, turi leisti įdiegti visas reikiamas funkcijas ir būti lengvai naudojama tiek administratoriams, kurie užsiima svetainių priežiūra ir užpildymu, tiek internetinių parduotuvių klientams. Daugelis žmonių ir įmonių, susiduriančių su sau tinkamo TVS pasirinkimo klausimu, analizuoja, ar rinktis Magento ar OkayCMS. Palyginkime šių svetainių variklių funkcijas ir galimybes.

Dirbdamas su savo svetaine, žmogus ar įmonė turės įdėti daug pastangų – tik tokiu atveju galite pasikliauti teigiamų rezultatų ir gauti tikrai veiksmingą įrankį. Vienas esminių klausimų, kurį būtina išspręsti dar prieš pradedant kurti svetainę, bus kaip apsispręsti dėl tinkamiausio TVS varianto. Toliau palyginsime dvi TVS: Joomla arba OkayCMS ir atkreipsime dėmesį į kiekvienos iš jų ypatybes.

Turėti savo svetainę yra vienas iš pagrindinių efektyvaus ir sėkmingo verslo reikalavimų. Statistika aiškiai rodo, kad daugėja įvairių prekių pirkimų ir paslaugų užsakymų internetu. Atsižvelgiant į tai, dauguma komercinių įmonių jau žino, kad reikia turėti savo svetainę. Tačiau vien to, kad turite interneto išteklių, nepakanka, kad būtų galima tikėtis jo efektyvumo, pelningumo ir numatomos verslo naudos.

Ruošiantis kurti savo svetainę ar atidaryti internetinę parduotuvę, reikia atsižvelgti ir išanalizuoti daugybę klausimų, taip pat spręsti įvairias problemas. Tik tokiu atveju galite tikėtis, kad jūsų projektas duos teigiamų rezultatų ir galės visiškai pateisinti jūsų lūkesčius. Tarp įvairių klausimų, susijusių su internetinės parduotuvės plėtra, TVS pasirinkimo klausimas nusipelno ypatingo dėmesio. Kad jums būtų lengviau apsispręsti dėl optimalaus variklio

Planuodami kurti savo internetinę svetainę būsimai internetinei parduotuvei, gana daug žmonių ir net pardavimų srityje besispecializuojančių įmonių susiduria su nelengvu ir itin svarbiu pasirinkimu: kurią iš esamų TVS pasirinkti. Jei galvojate, ką pasirinkti: PrestaShop ar OkayCMS, siūlome perskaityti šį straipsnį, kuriame palyginsime šias dvi interneto svetainių kūrimo sistemas, ypač internetines parduotuves.

2019-08-05

Sveiki, mielas lankytojau!

Prašau atleisti už vėlavimą atnaujinti tinklaraštį. Tačiau tam yra visiškai suprantamas paaiškinimas. Juk vasara, vasarnamis, svečiai, miškas, vanduo ir daug daugiau, kas neleido spręsti tinklalapio kūrimo klausimų. Bet dabar šiek tiek išsilaisvinau, svečiai išvažiavo ir manau, kad dabar tikrai galėsiu tam skirti deramą dėmesį.

Taigi, kai paskutiniame straipsnyje sujungėme savo domeno paštą su viena iš pašto paslaugų, dabar pažiūrėkime, kaip galite siųsti el. laiškus iš svetainės. Be to, tokiu būdu, kad mūsų laiškai nepatektų į SPAM, o būtų patikimai, su didele tikimybe, pristatyti mūsų gavėjams.

Apskritai, yra įmontuota mail() funkcija, skirta siųsti laiškus PHP. Tačiau reikia pažymėti, kad nepaisant šio metodo paprastumo (šiuo atveju norint išsiųsti laiškus pakanka nurodyti tik vieną kodo eilutę su tam tikrais parametrais), šios parinkties naudojimas turi reikšmingą trūkumą, susijusį su SPAM problema. .

Faktas yra tas, kad gavėjo pusėje esantys pašto serverių anti-SPAM filtrai nelabai palankiai vertina laiškus, siunčiamus per mail() funkciją. Ir dažniausiai tokie pranešimai filtruojami ar net ištrinami dar nepasiekus adresato.

O norint kuo labiau pašalinti tokius atvejus, dažniausiai naudojamas kitas variantas, kai laiškai siunčiami taip, lyg tai būtų daryta trečiosios šalies pašto tarnybos.

Šis metodas vadinamas laiškų siuntimu per SMTP su leidimu. Į kurį šiandien pažvelgsime naudodamiesi formos pateikimo pavyzdžiu atsiliepimai. Be to, tam naudosime gana gerai žinomą ir populiarią PHPMailer biblioteką, kuri leidžia gana paprastai organizuoti laiškų siuntimą per SMTP.

  • Kaip išsiųsime atsiliepimų laiškus
  • Atsiliepimo formos kūrimas
  • PHPMailer bibliotekos įdiegimas
  • Sukuriame scenarijų laiškų siuntimui per SMTP
  • El. laiškų siuntimo tikrinimas
  • Šaltinio failai svetainę

Kaip išsiųsime atsiliepimų laiškus

Prieš pradėdami praktinis darbas Išsiuntę atsiliepimų laiškus, pirmiausia nuspręsime, kaip tai darysime.

Atsiliepimų forma sukurta tam, kad vartotojas galėtų bendrauti su svetainės administratoriumi, kad perteiktų savo pranešimą. Paprastai šią formą sudaro keli laukai ir mygtukas „Pateikti“.

Iš esmės, norint išsiųsti el. laišką, pakanka naudoti tik kelis laukus, kuriuose pateikiama pakankamai informacijos apie vartotoją ir pranešimo turinį, pavyzdžiui:

  • „Vardas“ – įvesti žinutės siuntėjo vardą;
  • „El. paštas“ – adresui paštu siuntėjas;
  • "Pranešimo tema";
  • "Pranešimo tekstas".

Nors galite pridėti kitų. Pavyzdžiui, telefono numeris, jei to tikrai reikia.

Mūsų atveju tokie laiškai bus siunčiami svetainės administratoriaus adresu iš tikros pašto dėžutės su įgaliojimu pašto tarnyboje, prie kurios prijungtas mūsų domenas.

Kadangi ankstesniame straipsnyje mes sutelkėme dėmesį į domeno pašto ryšio su „Yandex.Mail“ paslauga patikrinimą, mes išsiųsime el. laišką šiai parinkčiai. Nors tai nėra svarbu. Žemiau matysite tas parinktis, kurias pakeitus galėsite siųsti el. laiškus per Mail.ru pašto serverį.

Kaip tikrą pašto dėžutę, iš kurios bus siunčiami laiškai, naudosime naujai sukurto domeno pašto vartotojo paskyrą, tarkime su adresu [apsaugotas el. paštas]. Ir mes išsiųsime šiuos laiškus pašto dėžutę administratorius [apsaugotas el. paštas], kurį anksčiau sukūrėme ankstesniame straipsnyje.

Taigi, laiško siuntėjas iš atsiliepimų formos bus pašto dėžutė [apsaugotas el. paštas]., o gavėjas - [apsaugotas el. paštas]. Tokiu atveju visa informacija apie vartotoją, atsiuntusį pranešimą su jos turiniu, bus perduota išsiųsto laiško tekste.

Atsiliepimo formos kūrimas

Apsisprendę dėl laiškų siuntimo tvarkos, dabar sukursime atsiliepimų formą, su kuria tai padarysime.

Žemiau yra šios formos HTML kodas, kurį patalpinsime puslapyje „Kontaktai“ (failas kontakty.php straipsnių kataloge).

    "straipsnis" >

    Kontaktai

    Atsiliepimai

    "kontaktas" veiksmas = "#" metodas = "post" >

    Atsiliepimo forma

    Jei turite klausimų, prašymų ir verslo pasiūlymų, galite susisiekti su mumis naudodami toliau pateiktą atsiliepimų formą.

    "kontaktų blokas" >

    "kontaktinis įvestis" >

    "tekstas" id = "kontakto vardas" vardas = "kontakto vardas" pavadinimas = "Vardas turi būti rusų kalba ir jame turi būti bent 3 simboliai" modelis = "{3,}" reikalingas >

  1. "tuščias kontaktas" >

    "kontaktinis įvestis" >

    "el. paštas" id = "kontaktinis el. paštas" vardas = "kontaktinis el. paštas" reikalingas >

  2. "kontaktinė tema" >

  3. "kontaktas-komentaras" >

  4. "kontaktinis mygtukas" >

    "pateikti" vardas = "kontaktinis mygtukas" vertė = "Siųsti" >

1 pav. Atsiliepimo formos HTML kodas

Kaip galiausiai atrodo čia rodoma atsiliepimų forma, galite pamatyti toliau pateiktoje ekrano kopijoje.

Taip sukuriama norima forma. O dabar galite pereiti prie duomenų apdorojimo ir siuntimo el. pašto žinutės forma.

PHPMailer bibliotekos įdiegimas

Kaip minėta anksčiau, laiškams siųsti naudosime PHPMailer biblioteką, kuri labai supaprastins el. SMTP protokolas su trečiosios šalies pašto paslaugos leidimu.

Norėdami jį įdiegti, turite atsisiųsti reikalingus failus. Tai galima padaryti naudojant GitHub žiniatinklio paslaugą naudojant Composer (paketo priklausomybės tvarkyklę, skirtą PHP). Arba tiesiog atsisiųskite reikiamus failus įprastu būdu.

73 ekrano kopija

Žemiau yra GitHub žiniatinklio paslaugos puslapis, kuriame pažymėta nuoroda į įprastą PHPMailer bibliotekos atsisiuntimą.

Be to, naujausia versija 6.0.7, kuris buvo išsaugotas šio straipsnio rašymo metu, galima atsisiųsti iš pridedamos medžiagos.

Bet kokiu atveju gautas archyvo failas turėtų būti išpakuotas, o po to ištrauktas PHPMailer-master aplankas su visu jo turiniu turėtų būti patalpintas į svetainės šaknį. Tuo pačiu, kad būtų paprasčiau, galite pervadinti jį PHPMailer. Žemiau yra PHPMailer aplanko, esančio pagrindiniame svetainės kataloge, turinys.

Taip įdiegėme PHPMailer biblioteką. Po to galime pradėti kurti scenarijų, su kuriuo siųsime el. laiškus iš mūsų svetainės.

Sukuriame scenarijų laiškų siuntimui per SMTP

Norėdami sudaryti scenarijų, pakanka pasinaudoti PHPMailer naudojimo rekomendacijomis, pateiktomis GitHub puslapyje, kurią anksčiau naudojome norėdami atsisiųsti biblioteką.

Jie visų pirma nurodo, kad scenarijaus pradžioje reikia importuoti PHPMailer klases į pasaulinę vardų erdvę. Ir pateikiamos konkrečios atitinkamo kodo eilutės. Taip pat yra PHPMailer savybių ir metodų naudojimo pavyzdžių, įskaitant galimybę siųsti laiškus per SMTP.

Bet jei to nepakanka, taip pat galite naudoti dokumentaciją, kurioje yra visų šios bibliotekos savybių ir metodų aprašymas.

74 ekrano kopija

Toliau pateikiamas scenarijaus kodas, skirtas laiškų siuntimui iš atsiliepimų formos per SMTP su įgaliojimu. Kur visos su PHPMailer susijusios eilutės pateikiamos su paaiškinimais ir paryškintos šviesiu fonu.

Likusi dalis, įskaitant fragmentus, susijusius su duomenų gavimu ir apdorojimu iš formos, kuriuos anksčiau turėjome naudoti kituose procesoriuose, yra pažymėta tamsiu fonu. Jie buvo išsamiai aptarti anksčiau straipsnyje, skirtame konkrečiai duomenų gavimo ir tikrinimo iš PHP formos klausimams. Kur mes taip pat kalbėjome apie universalią vartotojo funkciją, skirtą formos duomenims patvirtinti ir apdoroti check_ymbol().

Šį scenarijų įdėsime į tą patį kontakty.php failą, kuriame anksčiau sukūrėme atsiliepimų formą.

    //----Scenarijus laiškų siuntimui per SMTP naudojant PHPMailer ----

    //Importuokite PHPMailer klases į visuotinę vardų erdvę. Jie turėtų būti scenarijaus viršuje, o ne funkcijos viduje

    naudoti PHPMailer\PHPMailer\PHPMailer ;

    naudoti PHPMailer\PHPMailer\Exception ;

    jeigu (!tuščias($_POST["kontaktinis mygtukas" ])) (

    $vardas = $_POST["kontakto vardas" ];

    $vardas = check_simbolas ($vardas, "Vardas" , "1" , "/^+\z/iu" );

    $el. paštas = $_POST["kontaktinis el. paštas" ];

    $email = check_symbol ($el. paštas, "El. paštas" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $subject = $_POST["kontakto tema" ];

    $subject = check_symbol ($subject, "Pranešimo tema" , "1" , "0" );

    $komentaras = $_POST["kontaktas-komentaras" ];

    $komentaras = check_ymbol ($komentaras, "Pranešimo tekstas", "1" , "0" );

    jeigu (!tuščias($GLOBALS["alert" ])) (

    $ įspėjimas = "Formos duomenys nebuvo išsiųsti. Rastos šios klaidos:\n".$alert;

    įtraukti"alert.php" ;

    kitaip {

    //Prijungimas prie bibliotekos

    reikalauti"PHPMailer/src/PHPMailer.php" ;

    reikalauti"PHPMailer/src/Exception.php" ;

    reikalauti"PHPMailer/src/SMTP.php" ;

    $paštas = naujas PHPMailer(); //Klasės inicijavimas

    $nuo = " [apsaugotas el. paštas]" ; //El. pašto adresas, iš kurio siunčiamas laiškas

    $to = " [apsaugotas el. paštas]" ; //Gavėjo adresas

    $paštas -> isSMTP(); //Naudokite SMTP protokolą

    $mail -> Host = "smtp.yandex.ru" ; //Pašto serverio adresas

    $paštas -> SMTPAuth = tiesa ; //Įjungti autorizacijos režimą

    $mail -> Vartotojo vardas = " [apsaugotas el. paštas]" ; //Prisijunkite iš domeno el. pašto, prijungto prie trečiosios šalies el. pašto paslaugos (šiuo atveju „Yandex.Mail“)

    $paštas -> Slaptažodis = "27MrDon89" ; // Domeno pašto slaptažodis

    $paštas -> SMTPSecure = "ssl" ; //Šifravimo protokolas

    $paštas -> Prievadas = "465" ; //SMTP serverio prievadas

    $paštas -> CharSet = "UTF-8" ; //Kodavimas

    $paštas -> setFrom ($nuo, "Administratorius" ); //Siuntėjo adresas ir vardas

    $paštas -> pridėtiAdresas ($kam, "Administratorius" ); //Gavėjo adresas ir vardas

    $mail -> isHTML ( tiesa ); //Nustatyti el. pašto formatą į HTML

    $paštas -> Tema = „Atsiliepimo forma pateikta“; //El. pašto tema (antraštė)

    $mail -> Body = "

    Siuntėjo vardas: $vardas

    Siuntėjo adresas: $el. paštas

    Pranešimo tema: $subject

    Pranešimo turinys: $komentuoti

    " ; //Pranešimo turinys

    $paštas -> AltBody = "Alternatyvus raidžių tekstas"; //Alternatyvus el. paštas, jei el. pašto programa nepalaiko HTML formato

    $paštas -> SMTPDbug = 0 ; //Įgalinti SMTP derinimą: 0 – išjungta (įprastam naudojimui), 1 = kliento pranešimai, 2 – kliento ir serverio pranešimai

    jeigu($mail -> send()) (

    $ įspėjimas = "Pranešimas išsiųstas"; //Naršyklės dialogo lange išveskite pranešimą apie sėkmingą laiško išsiuntimą

    kitaip {

    $ įspėjimas = "Klaida, el. laiškas negali būti išsiųstas: ".$mail -> ErrorInfo ; //Išvesti klaidos pranešimą

    įtraukti"alert.php" ;

Fig.5 Scenarijus el. laiškų siuntimui per SMTP su leidimu

Kaip matote, visos su el. laiško siuntimu tiesiogiai susijusios eilutės, kuriose nurodyti būtini metodai ir savybės, yra su komentarais. Todėl nėra prasmės kartotis, bet galime pasilikti tik ties kai kuriais iš jų, kuriems iš tiesų reikia papildomų paaiškinimų, būtent:

1. Dėl to, kad laiškas siunčiamas iš trečiosios šalies pašto tarnybos, čia taikomi konkretų SMTP serverį atitinkantys nustatymai. Šiuo atveju, naudojant Yandex.Mail serverį, taikomos šios nuosavybės reikšmės:

  • Turtas Šeimininkas(poz.28) - Pašto serverio adresas su reikšme smtp.yandex.ru;
  • Turtas SMTPSecure
  • Turtas Uostas

Šios nuosavybės vertės buvo paimtos iš Yandex.Help puslapio, parodyto šioje ekrano kopijoje.

Tačiau tokią informaciją galima gauti ir iš kitų šaltinių. Norėdami tai padaryti, tiesiog įveskite atitinkamą užklausą paieškos sistemoje, pavyzdžiui: „Yandex smtp serveris“. Kur galima rasti daug nuorodų šia tema.

Panašiai nustatymų reikšmes galima gauti iš kitų SMTP serverių. Žemiau yra Mail.ru žinyno puslapio ekrano kopija, kurioje rodomi Mail.ru pašto tarnybos SMTP serverio nustatymai.

Taigi, naudojant Mail.ru kaip trečiosios šalies SMTP serverį, turėtų būti taikomos šios PHPMailer klasės savybių reikšmės:

  • Turtas Šeimininkas(poz.28) - Pašto serverio adresas (smtp.mail.ru);
  • Turtas SMTPSecure(poz.32) - Šifravimo protokolas (ssl);
  • Turtas Uostas(poz. 33) - SMTP serverio prievadas (465).

Panašus požiūris turėtų būti taikomas ir kitoms el. pašto paslaugoms.

2. Turte Vartotojo vardas(30 poz.) būtina nurodyti pilną domeno pašto dėžutės adresą. Šiuo atveju " [apsaugotas el. paštas]".

Tačiau jei laiškams siųsti naudojate kitą paskyrą, o ne domeno pašto paskyrą, bet adresą, tiesiogiai susijusį su pašto paslauga, pvz. [apsaugotas el. paštas]“, tada prisijungimas turėtų būti tik adreso dalis iki „@“ ženklo. Tokiu atveju prisijungimo vardas turėtų reikšmę „feedback“.

3. PHPMailer suteikia nuosavybę SMTPDbug(50 poz.), kuri leidžia naršyklės ekrane rodyti įvairaus lygio klaidas. Ši funkcija labai supaprastina problemų, susijusių su scenarijaus derinimo, paiešką.

Paprastai įprastu režimu, kai reikšmė nustatyta į 0, išsamios informacijos apie klaidą išvestis yra išjungta. Bet jei kyla problemų siunčiant paštą arba derinant, galima naudoti kitas reikšmes, kad būtų rodoma reikšmingesnė informacija apie klaidą.

Norėdami pamatyti, kaip tai atrodo praktiškai, laikinai įveskime tam tikrą nustatymų klaidą. Pavyzdžiui, domeno pašto slaptažodis (ypatybė Slaptažodis, 31 poz.). Taip pat rodyti išsamią informaciją apie klaidą, laikinai nustatytą nuosavybėje SMTPDbug(poz.50) reikšmė 1. Kai viskas bus derinama ir patikrinta, išjungsime SMTP derinimo režimą, 1 pakeisdami 0.

Baigiamojoje scenarijaus dalyje, nurodžius visas reikalingas savybes ir būdus, metodas naudojamas laiško siuntimui siųsti ()) (51 poz.). O jei laiškas išsiųstas, ir būdas siųsti () už objektą $ paštas grąžina true, tada naršyklės dialogo lange per kintamąjį $alert Bus rodomas pranešimas apie sėkmingą pašto siuntimą (poz. 52).

Jei dėl kokių nors priežasčių laiškas negalėjo būti išsiųstas ir, atitinkamai, metodas negalėjo grąžinti tikrovės, tada šią būseną lydės atitinkamas klaidos pranešimas (55 poz.).

El. laiškų siuntimo tikrinimas

Sukūrę laiškų siuntimo scenarijų, žinoma, turime pažvelgti į savo „kūrybiškumo“ rezultatą. Ar čia į viską atsižvelgėme ir ar nepadarėme klaidų?

Norėdami tai padaryti, pabandykime, kaip numatyta, išsiųsti vartotojo pranešimą svetainės administratoriui iš atsiliepimų formos. Žemiau pateikiama atsiliepimo formos ekrano kopija su laukeliais, užpildytais prieš pateikiant.

O štai formos pateikimo rezultatas.

Kur iš pranešimo naršyklės dialogo lange aišku, kad laiškas negali būti išsiųstas dėl SMTP ryšio problemos.

Tačiau nuo šiol turtas SMTPDbug(poz. 50) priskiriama 1 reikšmė, tada galime matyti išsamią informaciją apie įvykusią klaidą ir sužinoti jos atsiradimo priežastį.

Toliau pateiktoje ekrano kopijoje parodyta, kad bandant prisijungti buvo aptikta autentifikavimo klaida, tai reiškia, kad buvo naudojamas neteisingas prisijungimo vardas arba slaptažodis.

Pašalinus slaptažodžio neatitikimą (anksčiau buvo naudojamas neteisingas slaptažodis, kad būtų galima patikrinti papildomos informacijos apie klaidą išvestį), bandysime išsiųsti laišką dar kartą.

Šį kartą viskas atrodė gerai ir gavome pranešimą, kad laiškas sėkmingai išsiųstas. Matyt, išskyrus sąmoningai įvestą laikiną domeno el. pašto slaptažodžio klaidą, jokių kitų klaidų nepadarėme.

Tačiau norėdami įsitikinti, kad laiškas tikrai buvo pristatytas adresatui, įveskite laišką su adresu [apsaugotas el. paštas] ir pažiūrėk į rezultatą.

Kaip matote, laiškas iš adreso [apsaugotas el. paštas], iš kurio išsiuntėme el. laišką pavadinimu „Atsiliepimai“ sėkmingai pasiekė svetainės administratorių. Tuo pačiu metu laiško tekste yra visas turinys, kurį sukūrėme scenarijuje naudodami duomenis, gautus iš atsiliepimų formos, būtent:

  • Siuntėjo vardas: Nikolajus;
  • Siuntėjo adresas: [apsaugotas el. paštas];
  • Pranešimo tema: tikrinamas pašto siuntimas;
  • Pranešimo turinys: bandomasis pranešimas.

Dabar, sėkmingai patikrinę laiškų siuntimą, galite išjungti SMTP derinimo režimą, priskirdami nuosavybę SMTPDbug(50 poz.) reikšmė 0.

Taigi užbaigėme užduotį sukurti įrankį, skirtą laiškų siuntimui per SMTP su leidimu naudojant trečiosios šalies pašto serverį.

Pavyzdžiui, kitame straipsnyje apžvelgsime, kaip siųsti patvirtinimo el. laiškus, kad būtų atkurti registruoto vartotojo paskyros duomenys.

Svetainės šaltinio failai

Svetainės šaltinio failus su šiame straipsnyje atliktais atnaujinimais galima atsisiųsti iš pridedamos papildomos medžiagos:

  • www katalogo failai
  • MySQL duomenų bazių lentelės

PHP yra gana populiaru naudoti scenarijus, kurie automatizuoja laiškų siuntimo procesą. Šiame straipsnyje apžvelgsime paprastą scenarijų, kuris siunčia laiškus gavėjams per SMTP ( Paprastas pašto siuntimo protokolas ). Būtų per lengva apsiriboti tik šia funkcija, scenarijus palaiko ir priedus, tai yra, prie laiško galite pridėti pdf, txt ar doc failą.

Scenarijaus nustatymas yra gana paprastas, tai tereikia siuntėjo prisijungimo ir slaptažodžio el. paštui, iš kurio bus siunčiami laiškai.

Scenarijus veikia su km_smtp_class.php klase, geras dalykas klasėje yra tai, kad ji palaiko įvairius SSL ir TLS protokolus, kurie užtikrina saugų duomenų perdavimą.

Štai pats scenarijus:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [apsaugotas el. paštas]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Gavėjo el. paštas $Receiver = " [apsaugotas el. paštas]"; // Pranešimo tema $Subject = "El. laiško siuntimas iš PHP"; // Pranešimo tekstas (HTML) $Text = "Sveiki!
Laiškas atsiųstas iš scenarijaus Mowshon Svetainė: http://site"; // Priedas laiške - failo adresas $Attachment = ""; /* $mail = new KM_Mailer(serveris, prievadas, vartotojas, slaptažodis, tipas); */ /* Tipas gali būti: null, tls arba ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_serveris"], $SenderConfig["SMTP_port"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Pridėkite failą if($Attachment) ($mail->addAttachment($Attachment);) // Pridėti daugiau gavėjų $mail->addRecipient( “ [apsaugotas el. paštas]"); $mail->addRecipient(" [apsaugotas el. paštas]"); /* $paštas->siųsti(Nuo, Kam, Tema, Tekstas, Tema = neprivaloma) */ $SendMail = $paštas->siųsti($SenderConfig["SMTP_email"], $Receiver, $Subject, $Text ); // Išvalyti gavėjų sąrašą $mail->clearBCC()

Scenarijaus sąranka daugiausia pagrįsta $SenderConfig masyvu, čia turime nurodyti SMTP:serveris, prievadas, prisijungimo vardas ir el. pašto slaptažodis. Apibūdinkime kiekvieną masyvo raktą:

SMTP_serveris – SMTP serverio adresas (individualus adresas skirtingiems el. laiškams)

Mail.ru paštas: smtp.mail.ru prievadas: 25, 587 ir 465 (su SSL šifravimu)

„Yandex“ paštas: smtp.yandex.ru prievadas: 25, 587 465 (SSL prievadas)

Rambler paštas: mail.rambler.ru prievadas: 25, 587 465 (SSL prievadas)

Yahoo Mail: smtp.mail.yahoo.com SSL prievadas: 465

(Jei jums reikia smtp serverių, kurių nėra sąraše, adreso, rašykite komentaruose)

SMTP_portas – mes jau aprašėme jį aukščiau kiekvienam smtp serveriui.

SMTP_email - vartotojas būtų tiksliau, bet aiškumo dėlei parašiau emailą, nurodome el. pašto adresą.

SMTP_pass – el. pašto slaptažodis, kuris buvo nurodytas kaip reikšmė rakte SMTP_email


SMTP_type – numatytasis NULL. Protokolas, kuriuo bus siunčiami laiškai. Protokolai: SSL ir TLS

Galite pridėti priedus prie laiško tiesiog nurodydami visą failo adresą $Attachment kintamajame (/var/patch/to/file/File.pdf)

Jei turite klausimų, parašykite juos toliau pateiktuose komentaruose.

Kadangi anoniminių žinučių siuntimas iš virtualių Windows hostingo serverių yra draudžiamas, laiškus reikėtų siųsti per SMTP serverį, kuriam galima naudotis ir mūsų pašto sistema.

Kaip siųsti laiškus naudojant PHP?

Naudojant bet kurią PHP klasę, kuri palaiko autorizaciją smtp serveryje. Pavyzdžiui, galite naudoti PHPMailer klasės rinkinį.

Taip pat galite naudoti mūsų pavyzdį, kuris įgyvendina laiškų siuntimą naudojant smtp serverį, kuriam reikalingas leidimas. Todėl nepamirškite prie scenarijaus pridėti atitinkamos prieigos informacijos, pavyzdžiui:

// Jei reikia parodyti SMTP seanso žurnalą, galite panaikinti šios eilutės komentarą. // $_SERVER["debug"] = tiesa; function MailSmtp ($gavėjas, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP serverio adresas$smtp_port = 25 ; // SMTP serverio prievadas$smtp_user = " [apsaugotas el. paštas]" ; // Vartotojo vardas autorizacijai SMTP serveryje$smtp_password = "PasSWORd" ; // Slaptažodis autorizacijai SMTP serveryje$mail_from = " [apsaugotas el. paštas]" ; // Pašto dėžutė, iš kurios siunčiamas laiškas$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($kojinė, 512);<" . $mail_from . ">if (! $sock ) ( printf ( "Socket nesukurtas\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_slaptažodis)); smtp_msg ($sock , "PAŠTAS IŠ:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Tema: " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" $content . "\r\n" ($sock , $sock "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Siųsti iš mūsų : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket yra žemyn\n" ); išeiti (1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Gauta iš serverio: %s
" , nl2br (htmlspecialieji simboliai ($str )); ) $e = sprogdinti (" " , $str ); $kodas = masyvo_pakeitimas ($e ); $str = implode ( " " , $e ); if ($kodas > 499 ) ( printf ( „Kilo SMTP pokalbio problemos.

Kodas %d.
Pranešimas %s
"
, $kodas , $str );

išėjimas (1);

) ) ) ?>

Atsisiųskite paruošto scenarijaus su funkcija MailSmtp() pavyzdį: smtpauth.php.sample Galite naudoti aukščiau aprašytą funkciją MailSmtp() norėdami tiesiogiai pakeisti mail() funkciją, apsvarstykite paprasčiausios PHP formos pavyzdį: // Pranešimų antraštės, jos apibrėžia pranešimų kodavimą, laukus Nuo, Kam ir kt.$headers = "MIME versija: 1.0\r\n" ; $antraštės .= "Turinio tipas: tekstas/html; charset=windows-1251\r\n" " ; ; $headers .= "Kam: $į \r\n" ; $antraštės .=„Nuo: siuntėjo vardas
// paštas ($kam, $tema, $pranešimas, $antraštės); request_once "smtpauth.php" ;  MailSmtp ($kam, $tema, $pranešimas, $antraštės);  ) ?> Kam: 
 
 

Tekstas:

Siųsti!

Kad ši forma veiktų be funkcijos mail(), įtraukėme failą smtpauth.php per request_once ir pavadinome jame aprašytą funkciją MailSmtp() su argumentais, panašiais į mail(). Tuo pačiu metu mes pakomentavome mail() iškvietimą kode, kad išvengtume klaidų vykdant scenarijų. Kaip siųsti el. laiškus naudojant ASP.NET? Jei naudojate 2.0 versiją, tada naudokite MailMessage klasę

System.Net.Mail

), gerai aprašyta.

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); Toliau pateikiami jo naudojimo C# ir VisualBasic kalboms pavyzdžiai: C# kalbos pavyzdys: [apsaugotas el. paštas]"); // naujos raidės kūrimas message.To.Add(" // pridedant gavėjo adresąžinutė.Nuo = new MailAddress("nuo@ domain.tld", "Siuntėjo_vardas"); // nurodant siuntėjo pavadinimą ir adresą message.Subject = "Pranešimo tema"; // nurodant laiško temą message.BodyEncoding = System.Text.Encoding.UTF8; // nurodant raidžių kodavimą message.Body = "Pranešimo tekstas"; // nurodant laiško tekstą (turinį). SmtpClient klientas = new SmtpClient("smtp.site",25); // naujo ryšio su serveriu "smtp.site" kūrimas client.DeliveryMethod = SmtpDeliveryMethod.Network; // apibrėžia pranešimų siuntimo būdą client.EnableSsl = false; // išjungia poreikį naudoti saugų ryšį su serveriu client.UseDefaultCredentials = false; // išjungti numatytosios autorizacijos informacijos naudojimą client.Credentials = new NetworkCredential("postmaster@ // pridedant gavėjo adresą", "***slaptažodis***"); // nurodant reikiamus duomenis (vartotojo vardą ir slaptažodį) autorizacijai SMTP serveryje klientas.Siųsti(pranešimas); // siųsti žinutę %>

Atsisiųskite baigtos formos pavyzdį, rodantį šio metodo naudojimą: MailForm.aspx.

VisualBasic kalbos pavyzdys:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@// pridedant gavėjo adresą", "Siuntėjo_vardas") smtpMssg.To.Add (" [apsaugotas el. paštas]") “ Pridedamas gavėjo adresas smtpMssg.Subject = "El. pašto tema" "laiško temos nuoroda smtpMssg.Body = "Pranešimo tekstas" “ laiško teksto (turinio) nuoroda smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 “ raidžių kodavimo nuoroda smtpMssg.IsBodyHtml = false " raidės formato nuoroda (true - HTML, false - ne HTML) Pritemdykite SmtpMail kaip naują SmtpClient ("smtp.site", 25) “ naujo „SmtpClient“ tipo objekto deklaravimas SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network Laiško pristatymo būdo nuoroda SmtpMail.UseDefaultCredentials = Netiesa " pagal numatytuosius nustatymus išjungiamas autorizacijos kredencialų naudojimas" SmtpMail.EnableSsl = Netiesa “ išjungia poreikį naudoti saugų ryšį su serveriu SmtpMail.Credentials = new NetworkCredential("postmaster@ // pridedant gavėjo adresą", "***slaptažodis***") "nurodant reikiamus duomenis (vartotojo vardą ir slaptažodį) autorizacijai SMTP serveryje SmtpMail.Send(smtpMssg) “ siunčiant žinutę %>

Taip pat yra nebenaudojama (ir nebenaudojama) SmtpMail klasė (naudojama vardų sritis System.Web.Mail). Toliau pateikiamas jo naudojimo VisualBasic kalba pavyzdys:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage “ naujo objekto „MailMessage“ tipo deklaravimas smtpMssg.From = "Siuntėjo_vardas // pridedant gavėjo adresą>" „Siuntėjo pavadinimas ir adresas smtpMssg.To = "admin@ // pridedant gavėjo adresą" “ gavėjo adreso nuoroda smtpMssg.BodyFormat = MailFormat.Text “ raidės formato nuoroda smtpMssg.BodyEncoding = Encoding.UTF8 “, nurodant raidžių kodavimą smtpMssg.Subject = "El. pašto tema" "laiško temos nuoroda smtpMssg.Body = "Pranešimo tekstas" “ laiško teksto nuoroda smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) “, nurodantis, kad serveryje reikia SMTP prieigos teisės smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ // pridedant gavėjo adresą") "naudotojo vardas autorizacijai smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***password***") "autorizacijos slaptažodis SmtpMail.SmtpServer = "smtp.site" “, nurodant SMTP serverio adresą SmtpMail.Send(smtpMssg) “ siunčiant žinutę %>

Kaip siųsti el. laiškus naudojant ASP?

Atkreipkite dėmesį, kad naudojant mūsų smtp serverį reikalingas autorizavimas, todėl nepamirškite prie scenarijaus pridėti atitinkamos prieigos informacijos, pavyzdžiui:

<% 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@// pridedant gavėjo adresą" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "slaptažodis" .Atnaujinimas Pabaiga su rinkiniu cdoMessage = CreateObject("CDO.Message") Su cdoMessage Set .Configuration = iConfig .From = "Išbandyti vartotoją // pridedant gavėjo adresą>" .To = "Vartotojas " .Subject = "Sveikas, vartotojas" .TextBody = "Rašau šį pranešimą iš ASP scenarijaus." .Siųsti Pabaiga Nustatyti cdoMessage = Nieko Nustatyti iConfig = Nieko %>

Kai kurios TVS jau turi integruotus korespondencijos siuntimo įrankius ar atitinkamus modulius, pažiūrėkime į populiariausius.

Wordpress

Šiai TVS yra specialus modulis „WP Mail SMTP“, jo konfigūracijos pavyzdys aprašytas modulio puslapyje.

Atkreipkite dėmesį į pavyzdyje pateiktą iliustraciją mūsų pašto sistemoje būtina naudoti 25 prievadą ir SSL šifravimas nereikalingas.

Joomla

Administravimo skydelyje eikite į skyrių „Bendrieji nustatymai“, pasirinkite skirtuką „Serveris“. Lauke „Paštas“ turite pasirinkti siuntimo būdą kaip „SMTP serveris“, laukuose „SMTP serverio adresas“ ir „SMTP prisijungimas“ bei „SMTP slaptažodis“ nurodykite atitinkamą pašto sistemos informaciją, pavyzdžiui: smtp.site, dėžutė@jūsų_domenas ir atitinkamas slaptažodis.

Drupal

Ši TVS taip pat turi savo modulį darbui su SMTP serveriu, pagrįstą PHPMailer.Šį modulį galite atsisiųsti jo puslapyje CMS Drupal svetainėje.

NetCat

Ši TVS neturi integruotų funkcijų darbui su SMTP serveriu. Norėdami išsiųsti laišką naudodami svetainės scenarijus, galime pasiūlyti naudoti mūsų sprendimą, kad jį prijungtumėte, turite atlikti šiuos veiksmus:

  • Atsisiųskite archyvą su reikalingais failais iš mūsų svetainės ( send_auth_mail.php Ir mail.inc.php) ir išpakuokite jį savo kompiuteryje;
  • Redaguoti failą send_auth_mail.php iš archyvo, nurodant jame prisijungimo prie norimo SMTP serverio duomenis:

    • $mail_smtpServer = "smtp.svetainė"; (SMTP serverio adresas)
    • $pašto_portas = "25" ; (jungties prievadas)
    • $pašto_vartotojo vardas = "[apsaugotas el. paštas]" ; (vartotojo vardas autorizacijai SMTP serveryje)
    • $mail_password = "Slaptažodis"; (slaptažodis autorizacijai SMTP serveryje)
  • Sukurkite atsarginę failo kopiją domain.tld/www/netcat/admin/mail.inc.php;
  • Įkelti failus send_auth_mail.php Ir mail.inc.phpį virtualią svetainę kataloge domain.tld/www/netcat/admin/

// pridedant gavėjo adresą turėtų būti pakeistas jūsų domeno vardu.

Siūlomas sprendimas veikia su visais NetCat moduliais, kurie naudoja standartines šios TVS funkcijas laiškams siųsti.

© 2024 ermake.ru - Apie kompiuterių taisymą - Informacinis portalas