Php pasta sūtīšana, izmantojot Yandex smtp. Pasta sūtīšana, izmantojot SMTP no vietējā servera

Sākums / Programmu instalēšana

PHPMailer ir ļoti ērta un populāra bibliotēka sūtot e-pastu ziņas no jūsu vietnes. Šajā rakstā ir aprakstīti bibliotēkas pamata iestatījumi un sniegti kodu piemēri ziņojumu sūtīšanai. PHPMailer sortimentā, iespējams, ir viss, ko jūs varētu vēlēties, strādājot ar pastu: sūtīšanu dažādos veidos, izmantojot dažādus serverus, tostarp izmantojot smtp — iespēja šifrēt un parakstīt jūsu vēstules, lai tās nenonāktu surogātpastu un daudz ko citu.

Jūs varat lejupielādēt PHPMailer bibliotēku no https://github.com/PHPMailer/PHPMailer (poga "Klonēt vai lejupielādēt").

Pirmkārt, es apskatīšu pāris vienkāršus piemērus lai būtu skaidrs, kā sūtīt e-pastus, izmantojot PHPMailer.

E-pasta sūtīšana, izmantojot funkciju mail(), izmantojot PHPMailer

Ja vēlaties nosūtīt e-pasta ziņojumus no sava hostinga, izmantojot savu pasta serveris, tad viss ir pavisam vienkārši un izskatīsies apmēram šādi:

// Iekļaut PHPMailer bibliotēku izmantot PHPMailer\PHPMailer\PHPMailer; pieprasīt "PHPMailer/PHPMailer.php"; // Izveidot vēstuli $mail = new PHPMailer(); $mail->setFrom(" [aizsargāts ar e-pastu]", "Ivans Ivanovs"); // no kura (e-pasts un vārds) $ pasts-> addAddress(" [aizsargāts ar e-pastu]", "Vasja Petrovs"); // kam (e-pasts un vārds) $ pasts->Subject = "Tests"; // vēstules priekšmets // html teksts burti $mail->msgHTML("

Sveiki!

Šī ir testa vēstule.

"); // Sūtīt if ($mail->send()) ( echo "Ziņojums nosūtīts!"; ) else ( echo "Kļūda: " . $mail->ErrorInfo; )

Kā redzams, viss ir pavisam vienkārši: pieslēdzam bibliotēku, aizpildām no kā, kam vēstules tēmu un tekstu un nosūtām. E-pasta sūtīšana šādā veidā darbosies tikai no e-pasta adresēm jūsu domēnā (ja vien tās nav saistītas ar citiem e-pasta sūtītājiem).

E-pasta sūtīšana, izmantojot SMTP, izmantojot PHPMailer, izmantojot Yandex un Google piemēru

Varat arī nosūtīt vēstuli, izmantojot citu pasta sūtītāju, piemēram, caur Yandex. Kods izskatīsies apmēram šādi:

// Iekļaut PHPMailer bibliotēku izmantot PHPMailer\PHPMailer\PHPMailer; izmantot PHPMailer\PHPMailer\SMTP; pieprasīt "PHPMailer/PHPMailer.php"; pieprasīt "PHPMailer/SMTP.php"; // Izveidot vēstuli $mail = new PHPMailer(); $ pasts->isSMTP(); // Sūtīšana, izmantojot SMTP $ pasts-> Host = "smtp.yandex.ru"; // SMTP servera adrese $ pasts->SMTPAuth = true; // Iespējot SMTP autentifikāciju $ pasts->Lietotājvārds = "pieteikšanās"; // jūsu lietotājvārds (bez domēna un @) $mail->Parole = "parole"; // jūsu parole $mail->SMTPSecure = "ssl"; // ssl šifrēšana $ pasts->Ports = 465; // savienojuma ports $mail->setFrom(" [aizsargāts ar e-pastu]", "Ivans Ivanovs"); // no kura $mail->addAddress(" [aizsargāts ar e-pastu]", "Vasja Petrovs"); // kam $mail->Subject = "Pārbaude"; $mail->msgHTML("

Sveiki!

Šī ir testa vēstule.

"); // Sūtīt if ($mail->send()) ( echo "Ziņojums nosūtīts!"; ) else ( echo "Kļūda: " . $mail->ErrorInfo; )

E-pasta ziņojumu sūtīšana, izmantojot Google ir viens brīdinājums: jums tas ir jādara google konts ļauj piekļūt neuzticamām lietojumprogrammām. Lai to izdarītu, atveriet savu kontu https://myaccount.google.com, dodieties uz sadaļu Drošība, dodieties uz sadaļu “Neuzticamās lietojumprogrammas, kurām ir piekļuve jūsu kontam” un tur pārslēdzieties uz “Atļauts”. Rakstīšanas laikā šī lapa ir https://myaccount.google.com/u/0/lesssecureapps.

$mail->Host = "smtp.gmail.com"; // SMTP servera adrese $ pasts->SMTPauth = true; // Iespējot SMTP autentifikāciju $ pasts->Lietotājvārds = "pieteikšanās"; // jūsu lietotājvārds $mail->Parole = "parole"; // jūsu parole $mail->SMTPSecure = "ssl"; // ssl šifrēšana $ pasts->Ports = 465; // savienojuma ports

Ja programmu sūtīšanai pa smtp palaižat pirmo reizi, tad pirms nosūtīšanas vēlams papildus izmantot $ pasts->SMTTPebug = 1; lai saņemtu visus ziņojumus no klienta un smtp servera, t.i. Ekrānā tiks parādīts viss savienojuma, autorizācijas utt. process, kas ir ļoti noderīgi programmas atkļūdošanai.

E-pasta sūtīšana ar pielikumu, izmantojot PHPMailer

Šeit viss ir pavisam vienkārši, jums vienkārši jāizmanto metode pievienot Pielikumu. Es sniegšu piemēru un vienlaikus parādīšu vēl dažus papildu funkcijas:

// Iekļaut PHPMailer bibliotēku izmantot PHPMailer\PHPMailer\PHPMailer; izmantot PHPMailer\PHPMailer\Exception; pieprasīt "PHPMailer/PHPMailer.php"; pieprasīt "PHPMailer/Exception.php"; // Izveidot vēstuli $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [aizsargāts ar e-pastu]", "Ivans Ivanovs"); // no kura $mail->addReplyTo(" [aizsargāts ar e-pastu]", "Ivans Ivanovs"); // atgriešanas adrese $ pasts-> addAddress(" [aizsargāts ar e-pastu]", "Vasja Petrovs"); // kam $mail->Subject = "Pārbaude"; // priekšmets $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // iegūt "body" vēstules no faila $mail->AltBody = "Vienkārša teksta vēstule" // vienkārša teksta vēstule, ja klients neatbalsta html $mail->addAttachment("my_file.txt" // pievienot vienu failu $mail-); >addAttachment("phpmailer) .jpg"); // pievienot otro failu // Send if ($mail->send()) ( atbalss "Ziņojums nosūtīts!"; ) else ( echo "Kļūda: " . $mail- > ErrorInfo;

Varat pievienot vairākas adresātu adreses, izmantojot addAddress. Vai, ja nepieciešams, varat, gluži pretēji, notīrīt visas adresātu adreses, izmantojot šo metodi notīrīt adreses (). Varat notīrīt visus pielikumus, izmantojot notīrīt pielikumus().

Varat arī izmantot AddEmbeddedImage lai e-pastam pievienotu pielikumu (parasti attēlu), kas paredzēts lietošanai html kodā un nebūs pieejams lejupielādei. Piemērs attēla izmantošanai vēstulē, kas nav pieejama lejupielādei:

// Iekļaut PHPMailer bibliotēku izmantot PHPMailer\PHPMailer\PHPMailer; pieprasīt "PHPMailer/PHPMailer.php"; //Izveidot vēstuli $mail = new PHPMailer; $ pasts->IsHTML(true); $mail->setFrom(" [aizsargāts ar e-pastu]", "Ivans Ivanovs"); $ pasts-> addAddress(" [aizsargāts ar e-pastu]", "Vasja Petrovs"); $ pasts-> Subject = "Pārbaude"; $ pasts-> AddEmbeddedImage("phpmailer.jpg","testImage"); $ pasts-> Body = "

Attēls html kodā

"; // Sūtīt $mail->send();

Tātad jūs varat nosūtīt burti ar attēliem, kas atrodas tikai vēstules pamattekstā, taču tos nevar lejupielādēt kā pielikumu. Šos attēlus var izmantot jebkur vēstules html kodā, jums vienkārši jānorāda attēla cid, ko izmantojāt AddEmbeddedImage, nevis url adresi.

Parakstīta un šifrēta e-pasta sūtīšana, izmantojot PHPMailer

Pēc noklusējuma PHPMailer šifrē visas nosūtītās ziņas. E-pasta šifrēšanu var atspējot tikai tad, ja sūtāt e-pastus, izmantojot SMTP, izmantojot kodu:

$ pasts-> SMTPSecure = false; $ pasts->SMTPAutoTLS = false;

Uz paraksta vēstuli ar DKIM parakstu, jums jāveic vairākas darbības:

  • Ģenerējiet sava domēna privātās un publiskās atslēgas
  • Pievienojiet DNS ierakstu TXT domēnam ar publisko atslēgu
  • Pirms e-pasta sūtīšanas konfigurējiet DKIM parakstu programmā PHPMailer

Tagad es aprakstīšu katru soli nedaudz sīkāk.

Privāto un publisko atslēgu ģenerēšana

Ja jums ir Linux mitināšana un jums ir piekļuve Shell, atslēgu failu ģenerēšana ir tikpat vienkārša kā bumbieru lobīšana, jums ir jāpalaiž tikai 2 komandas ar parastajām lietotāja tiesībām:

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

Respektīvi, test-private.pem Un test-public.pem- tās ir privātās un publiskās atslēgas. Tie ir jāsaglabā mapē, kas nebūs pieejama vietnes apmeklētājiem vai citiem, izņemot jūs.

Ja nav iespējams izpildīt komandas čaulā, tad, lai ģenerētu privātās un publiskās atslēgas un saglabātu tās failos, varat izmantot šādu kodu:

$domēns = "test.ru"; // jūsu domēns $privatekeyfile = "test-private.pem"; // faila nosaukums, kurā tiks ierakstīta privātā atslēga $publickeyfile = "test-public.pem"; // faila nosaukums, kurā tiks ierakstīta publiskā atslēga if (file_exists($privatekeyfile)) ( echo "

Izmantojot esošās atslēgas

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

Izveidojiet atslēgas"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file, $key_sl ils ($ pk $publickey = $pubKey["atslēga"];

Privātā atslēga (saglabājiet šo privātu!):

" . $privātā atslēga ."
"; atbalss"

Publiskā atslēga:

" . $publickey ."
";

Uzmanību! Neaizmirstiet pārliecināties, ka mape, kurā tiks saglabāti faili, ir rakstāma.

DNS ieraksta pievienošana ar publisko atslēgu

DNS ieraksts ir nepieciešams, lai pasta serveri, kas saņems jūsu vēstules, varētu pārbaudīt vēstules parakstu, nolasot jūsu domēna DNS ierakstu. Parasti DNS ierakstu varat pievienot savā domēna vadības panelī vai mitināšanas vadības panelī. Ja nezināt, kā pievienot ierakstu, sazinieties ar mitināšanas pakalpojumu sniedzēja atbalstu.

Jums jāpievieno šāds DNS ieraksts:

Ieraksta nosaukums: mail._domainkey.test.ru. (beigās ir punkts ".")

TTL: 3600 (vai tas, kurš būs noklusējuma)

Ziņas veids: TXT

Nozīme: v=DKIM1; h=sha256; t=s; p=YOUR_PUBLIC_KEY

Ieraksta nosaukumā test.ru jāaizstāj ar jūsu domēna vārdu. Jūs aizstājat vārdus "YOUR_PUBLIC_KEY" ar tekstu, ko saņēmāt iepriekšējā darbībā aiz "Publiskā atslēga", bez "-----BEGIN PUBLISKĀ ATSLĒGA-----" un "-----END PUBLISKĀ ATSLĒGA- -- --", tikai pati atslēga. Šajā gadījumā ir nepieciešamas visas galvenās līnijas savienot vienā garā rindā lai nebūtu rindiņu pārtraukumu.

DKIM paraksta iestatīšana programmā PHPMailer un e-pasta nosūtīšana

Tagad atliek tikai pirms vēstules nosūtīšanas veikt dažus PHPMailer iestatījumus un tā tiks parakstīta. Es domāju, ka šāds piemērs visu paskaidros:

// Iekļaut bibliotēku izmanto PHPMailer\PHPMailer\PHPMailer; pieprasīt "PHPMailer/PHPMailer.php"; // Izveidot vēstuli $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [aizsargāts ar e-pastu]"); $ pasts-> addAddress(" [aizsargāts ar e-pastu]"); $mail->Subject = "Šis ir tests"; $mail->msgHTML("

Šis ir pārbaudījums

"); // DKIM paraksta iestatīšana $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "pasts"; // Sūtīt $ pasts->sūtīt();

Protams test.ru jums vajadzētu mainīt savu domēna vārdu un test-private.pem uz pilnu privātās atslēgas faila ceļu un nosaukumu, kas tika izveidots atslēgas ģenerēšanas posmā.

Tagad jūsu e-pasta ziņojumi, kas nosūtīti, izmantojot PHPMailer, tiks parakstīti DKIM ar jūsu privāto atslēgu.

Lai kādai noteiktai vietnei būtu iespēja strādāt efektīvi un produktīvi, tās izveidei ir jāpieiet pēc iespējas atbildīgāk un rūpīgāk. Īpašu uzmanību ir pelnījusi sistēmas izvēle, kas tiks izmantota interneta veikala izveidei. Fakts ir tāds, ka komerciālai platformai, kas specializējas preču vai pakalpojumu pārdošanā, ir jāļauj ieviest visu nepieciešamo funkcionalitāti un jābūt viegli lietojamai gan vietņu uzturēšanā un aizpildīšanā iesaistītajiem administratoriem, gan tiešsaistes veikalu klientiem. Daudzi cilvēki un uzņēmumi, kas saskaras ar jautājumu par sev piemērotas CMS izvēli, analizē, vai izvēlēties Magento vai OkayCMS. Salīdzināsim šo vietņu dzinēju funkcijas un iespējas.

Strādājot pie savas mājas lapas, cilvēkam vai uzņēmumam būs jāpieliek lielas pūles – tikai šajā gadījumā varat paļauties uz pozitīvi rezultāti un iegūt patiesi efektīvu rīku. Viens no fundamentālajiem jautājumiem, kas jāatrisina jau pirms mājas lapas izveides, būs, kā izlemt par piemērotāko CMS variantu. Tālāk mēs salīdzināsim divas CMS: Joomla vai OkayCMS un pievērsīsim uzmanību katras no tām funkcijām.

Savas tīmekļa vietnes izveide ir viena no efektīvas un sekmīgas uzņēmējdarbības pamatprasībām. Statistika skaidri norāda uz dažādu preču pirkumu un pakalpojumu pasūtījumu skaita pieaugumu internetā. Ņemot to vērā, lielākā daļa komercsabiedrību jau apzinās nepieciešamību izveidot savu tīmekļa vietni. Tomēr ar interneta resursa esamību vien nepietiek, lai rēķināties ar tā efektivitāti, rentabilitāti un paredzamajiem biznesa ieguvumiem.

Gatavojoties izveidot savu vietni vai atvērt interneta veikalu, jāņem vērā un jāanalizē daudzi jautājumi, kā arī jārisina dažādas problēmas. Tikai šajā gadījumā jūs varat paļauties uz to, ka jūsu projekts nesīs pozitīvus rezultātus un spēs pilnībā attaisnot jūsu cerības. Starp dažādiem jautājumiem, kas saistīti ar interneta veikala attīstību, īpašu uzmanību ir pelnījis jautājums par CMS izvēli. Lai jums būtu vieglāk izlemt par optimālo dzinēju sev, iekšā

Plānojot veidot savu mājaslapu topošajam interneta veikalam, diezgan liela daļa cilvēku un pat uzņēmumu, kas specializējas pārdošanā, saskaras ar grūtu un ārkārtīgi svarīgu izvēli: kuru no esošajām CMS izvēlēties. Ja domājat par to, ko izvēlēties: PrestaShop vai OkayCMS, iesakām izlasīt šo rakstu, kurā salīdzināsim šīs divas sistēmas interneta vietņu, jo īpaši interneta veikalu, izveidei.

2019-08-05

Sveiki, dārgais apmeklētāj!

Lūdzu, piedodiet par kavēšanos ar emuāra atjaunināšanu. Bet tam ir pilnīgi saprotams izskaidrojums. Galu galā vasara, vasarnīca, viesi, mežs, ūdens un daudz kas cits, kas man neļāva risināt vietnes izveides jautājumus. Bet tagad esmu nedaudz atbrīvojies, viesi ir devušies prom, un domāju, ka tagad noteikti varēšu tam pievērst pienācīgu uzmanību.

Tātad, pēc tam, kad iepriekšējā rakstā mēs savienojām sava domēna pastu ar kādu no pasta pakalpojumiem, tagad apskatīsim, kā varat nosūtīt e-pastu no vietnes. Turklāt tā, lai mūsu vēstules nenonāktu SPAM, bet gan uzticami, ar lielu varbūtības pakāpi tiktu piegādātas mūsu adresātiem.

Kopumā ir iebūvēta funkcija mail() vēstuļu sūtīšanai PHP. Bet jāatzīmē, ka, neskatoties uz šīs metodes vienkāršību (šajā gadījumā, lai nosūtītu vēstules, pietiek norādīt tikai vienu koda rindiņu ar noteiktiem parametriem), šīs opcijas izmantošanai ir būtisks trūkums, kas saistīts ar SPAM problēmu. .

Fakts ir tāds, ka pasta serveru anti-SPAM filtri adresāta pusē īsti neatbalsta vēstules, kas nosūtītas, izmantojot funkciju mail(). Un vairumā gadījumu šādi ziņojumi tiek filtrēti vai pat izdzēsti, pirms tie sasniedz adresātu.

Un, lai pēc iespējas novērstu šādus gadījumus, parasti tiek izmantota cita iespēja, kurā vēstules tiek sūtītas tā, it kā to darītu trešās puses pasta serviss.

Šo metodi sauc par pasta sūtīšanu, izmantojot SMTP ar autorizāciju. Ko mēs šodien aplūkosim, izmantojot veidlapas iesniegšanas piemēru atsauksmes. Turklāt šim nolūkam izmantosim diezgan pazīstamo un populāro PHPMailer bibliotēku, kas ļauj gluži vienkārši organizēt vēstuļu sūtīšanu caur SMTP.

  • Kā mēs nosūtīsim atsauksmju vēstules
  • Atsauksmju veidlapas izveide
  • PHPMailer bibliotēkas instalēšana
  • Mēs izveidojam skriptu pasta sūtīšanai, izmantojot SMTP
  • Pārbauda e-pasta sūtīšanu
  • Avota faili vietne

Kā mēs nosūtīsim atsauksmju vēstules

Pirms sākat praktiskais darbs Pēc atsauksmju vēstuļu nosūtīšanas vispirms izlemsim, kā to darīsim.

Atsauksmes veidlapa ir izstrādāta, lai ļautu lietotājam sazināties ar vietnes administratoru, lai nodotu savu ziņojumu. Parasti šī veidlapa sastāv no vairākiem laukiem un pogas “Iesniegt”.

Principā, lai nosūtītu e-pastu, pietiek izmantot tikai dažus laukus, kas sniedz pietiekamu informāciju par lietotāju un ziņojuma saturu, piemēram:

  • "Vārds" - lai ievadītu ziņas sūtītāja vārdu;
  • "E-pasts" - adresei e-pasts sūtītājs;
  • "Ziņojuma tēma";
  • "Ziņojuma teksts".

Lai gan jūs varat pievienot citus. Piemēram, tālruņa numurs, ja tas patiešām ir nepieciešams.

Mūsu gadījumā šādas vēstules tiks nosūtītas uz vietnes administratora adresi no īstas pastkastes ar autorizāciju pasta pakalpojumā, ar kuru ir savienots mūsu domēns.

Tā kā iepriekšējā rakstā mēs koncentrējāmies uz domēna pasta savienojuma pārbaudi ar pakalpojumu Yandex.Mail, mēs nosūtīsim pastu šai opcijai. Lai gan tas nav svarīgi. Zemāk redzēsit tās opcijas, kuras, mainot, ļaus nosūtīt e-pastu, izmantojot pasta serveri Mail.ru.

Kā īstu pastkastīti, no kuras tiks sūtītas vēstules, mēs izmantosim jaunizveidota domēna pasta lietotāja kontu, teiksim ar adresi [aizsargāts ar e-pastu]. Un mēs nosūtīsim šīs vēstules uz pastkaste administrators [aizsargāts ar e-pastu], kuru mēs iepriekš izveidojām iepriekšējā rakstā.

Tādējādi vēstules sūtītājs no atsauksmju veidlapas būs pastkaste [aizsargāts ar e-pastu]., un saņēmējs - [aizsargāts ar e-pastu]. Šajā gadījumā visa informācija par lietotāju, kurš nosūtījis ziņojumu ar tā saturu, tiks pārsūtīts nosūtītās vēstules pamattekstā.

Atsauksmju veidlapas izveide

Pēc tam, kad būsim izlēmuši par vēstuļu nosūtīšanas kārtību, tagad izveidosim atsauksmju veidlapu, ar kuru mēs to darīsim.

Zemāk ir šīs veidlapas HTML kods, kuru ievietosim lapā "Kontakti" (rakstu direktorijā fails kontakty.php).

    "raksts" >

    Kontakti

    Atsauksmes

    "kontakts" darbība = "#" metode = "post" >

    Atsauksmes forma

    Par visiem jautājumiem, pieprasījumiem un biznesa priekšlikumiem varat sazināties ar mums, izmantojot tālāk esošo atsauksmju veidlapu.

    "kontaktu bloks" >

    "kontakta ievade" >

    "teksts" id = "kontaktpersonas vārds" vārds = "kontaktpersonas vārds" virsraksts = "Nosaukumam jābūt krievu valodā un tajā jābūt vismaz 3 rakstzīmēm" modelis = "{3,}" nepieciešams >

  1. "tukšs kontakts" >

    "kontakta ievade" >

    "e-pasts" id = "kontakt-e-pasts" vārds = "kontakt-e-pasts" nepieciešams >

  2. "kontakts-tēma" >

  3. "kontakts-komentārs" >

  4. "kontakta poga" >

    "iesniegt" vārds = "kontakta poga" vērtība = "Sūtīt" >

1. att. Atsauksmes veidlapas HTML kods

Nākamajā ekrānuzņēmumā varat redzēt, kā izskatās šeit redzamā atsauksmju veidlapa.

Tādējādi tiek izveidota vēlamā forma. Un tagad varat pāriet uz jautājumiem par datu apstrādi un nosūtīšanu e-pasta ziņojuma veidā.

PHPMailer bibliotēkas instalēšana

Kā minēts iepriekš, pasta sūtīšanai mēs izmantosim PHPMailer bibliotēku, kas ievērojami vienkāršos e-pasta sūtīšanu, izmantojot SMTP protokols ar atļauju trešās puses pasta pakalpojumā.

Lai to instalētu, jums jālejupielādē nepieciešamie faili. To var izdarīt no GitHub tīmekļa pakalpojuma, izmantojot Composer (pakešu atkarības pārvaldnieks PHP). Vai arī vienkārši lejupielādējiet nepieciešamos failus parastajā veidā.

73. ekrānuzņēmums

Zemāk ir GitHub tīmekļa pakalpojuma lapa, kurā ir atzīmēta saite uz parasto PHPMailer bibliotēkas lejupielādi.

Bez šī, jaunākā versija 6.0.7, kas tika saglabāts šī raksta tapšanas laikā, var lejupielādēt no pievienotajiem materiāliem.

Jebkurā gadījumā iegūtais arhīva fails ir jāizpako, pēc tam izvilktā PHPMailer-master mape ar visu tās saturu jāievieto vietnes saknē. Tajā pašā laikā vienkāršības labad varat to pārdēvēt par PHPMailer. Zemāk ir PHPMailer mapes saturs, kas ievietots vietnes saknes direktorijā.

Tādējādi mēs instalējām PHPMailer bibliotēku. Pēc tam mēs varam sākt veidot skriptu, ar kuru mēs nosūtīsim e-pasta ziņas no mūsu vietnes.

Mēs izveidojam skriptu pasta sūtīšanai, izmantojot SMTP

Lai izveidotu skriptu, pietiek izmantot GitHub lapā sniegtos ieteikumus par PHPMailer lietošanu, kurus mēs iepriekš izmantojām bibliotēkas lejupielādei.

Tie jo īpaši norāda, ka skripta sākumā ir nepieciešams importēt PHPMailer klases globālajā nosaukumu telpā. Un tiek dotas konkrētas atbilstošā koda rindas. Ir arī PHPMailer rekvizītu un metožu izmantošanas piemēri, tostarp iespēja nosūtīt pastu, izmantojot SMTP.

Bet, ja ar to nepietiek, tad var izmantot arī dokumentāciju, kurā ir visu šīs bibliotēkas īpašību un metožu apraksts.

74. ekrānuzņēmums

Tālāk ir norādīts skripta kods pasta sūtīšanai no atsauksmju veidlapas, izmantojot SMTP ar autorizāciju. Kur visas ar PHPMailer saistītās rindas ir sniegtas ar paskaidrojumiem un izceltas ar gaišu fonu.

Pārējā daļa, ieskaitot fragmentus, kas saistīti ar datu saņemšanu un apstrādi no formas, kas mums iepriekš bija jāizmanto citos procesoros, ir apzīmēta ar tumšu fonu. Tie tika detalizēti apspriesti iepriekš rakstā, kas īpaši veltīts jautājumiem par datu iegūšanu un pārbaudi no veidlapas PHP. Kur mēs runājām arī par universālo lietotāja funkciju veidlapu datu validēšanai un apstrādei pārbaudes_simbols().

Mēs ievietosim šo skriptu tajā pašā kontakty.php failā, kurā iepriekš izveidojām atsauksmju veidlapu.

    //----Skripts pasta sūtīšanai, izmantojot SMTP, izmantojot PHPMailer----

    //Importējiet PHPMailer klases globālajā nosaukumvietā. Tiem jāatrodas skripta augšdaļā, nevis funkcijā

    izmantot PHPMailer\PHPMailer\PHPMailer ;

    izmantot PHPMailer\PHPMailer\Exception ;

    ja (!tukšs($_POST["kontaktpoga" ])) (

    $nosaukums = $_POST["kontaktpersonas vārds" ];

    $name = check_simbols ($name, "Nosaukums" , "1" , "/^+\z/iu" );

    $email = $_POST["kontakt-e-pasts" ];

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

    $subject = $_POST["kontaktpersonas tēma" ];

    $subject = check_symbol ($subject, "Message Subject" , "1" , "0" );

    $komentārs = $_POST["kontakts-komentārs" ];

    $komentārs = check_simbols ($komentārs, "Ziņojuma teksts", "1" , "0" );

    ja (!tukšs($GLOBALS["alert" ])) (

    $ brīdinājums = "Veidlapas dati netika nosūtīti. Tika atrastas šādas kļūdas:\n".$alert;

    ietver"alert.php" ;

    cits {

    // Bibliotēkas pievienošana

    pieprasīt"PHPMailer/src/PHPMailer.php" ;

    pieprasīt"PHPMailer/src/Exception.php" ;

    pieprasīt"PHPMailer/src/SMTP.php" ;

    $ pasts = jauns PHPMailer(); //Klases inicializācija

    $no = " [aizsargāts ar e-pastu]" ; //E-pasta adrese, no kuras tiek sūtīta vēstule

    $līdz = " [aizsargāts ar e-pastu]" ; //Saņēmēja adrese

    $ pasts -> isSMTP(); //Izmantojiet SMTP protokolu

    $mail -> Host = "smtp.yandex.ru" ; //Pasta servera adrese

    $ pasts -> SMTPAuth = taisnība ; //Iespējot autorizācijas režīmu

    $mail -> Lietotājvārds = " [aizsargāts ar e-pastu]" ; //Pieteikšanās no domēna e-pasta, kas savienots ar trešās puses e-pasta pakalpojumu (šajā gadījumā Yandex.Mail)

    $ pasts -> Parole = "27MrDon89" ; //Domēna pasta parole

    $ pasts -> SMTPSecure = "ssl" ; //Šifrēšanas protokols

    $ pasts -> Port = "465" ; //SMTP servera ports

    $ pasts -> CharSet = "UTF-8" ; //Kodējums

    $mail -> setFrom ($from, "Administrators" ); //Sūtītāja adrese un vārds

    $mail -> addAddress ($kam, "Administrators" ); //Saņēmēja adrese un vārds

    $mail -> isHTML ( taisnība ); //Iestatiet e-pasta formātu uz HTML

    $ pasts -> Tēma = "Iesniegta atsauksmju veidlapa"; //E-pasta tēma (virsraksts)

    $ pasts -> pamatteksts = "

    Sūtītāja vārds: $name

    Sūtītāja adrese: $e-pasts

    Ziņojuma tēma: $subject

    Ziņojuma saturs: $komentārs

    " ; //Ziņojuma saturs

    $ pasts -> AltBody = "Alternatīvais burtu teksts"; //Alternatīva e-pasta adrese, ja e-pasta klients neatbalsta HTML formātu

    $ pasts -> SMTPDbug = 0 ; //Iespējot SMTP atkļūdošanu: 0 — izslēgts (parastai lietošanai), 1 = klienta ziņojumi, 2 — klienta un servera ziņojumi

    ja($mail -> send()) (

    $ brīdinājums = "Ziņojums nosūtīts"; //Pārlūkprogrammas dialoglodziņā izvadiet ziņojumu par veiksmīgu vēstules nosūtīšanu

    cits {

    $ brīdinājums = "Kļūda, e-pastu nevar nosūtīt:".$mail -> ErrorInfo ; //Izvada kļūdas ziņojumu

    ietver"alert.php" ;

5. att. Skripts e-pasta sūtīšanai caur SMTP ar autorizāciju

Kā redzat, visām ar e-pasta ziņojuma nosūtīšanu tieši saistītajām rindiņām, kurās norādītas nepieciešamās metodes un rekvizīti, ir pievienoti komentāri. Tāpēc nav jēgas atkārtoties, bet mēs varam pakavēties tikai pie dažiem no tiem, kas patiešām prasa papildu skaidrojumus, proti:

1. Sakarā ar to, ka vēstule ir nosūtīta no trešās puses pasta pakalpojuma, šeit tiek piemēroti konkrētajam SMTP serverim atbilstošie iestatījumi. Šajā gadījumā Yandex.Mail servera lietošanas gadījumā tiek piemērotas šādas rekvizītu vērtības:

  • Īpašums Uzņēmēja(poz.28) - pasta servera adrese ar vērtību smtp.yandex.ru;
  • Īpašums SMTPSecure
  • Īpašums Osta

Šīs rekvizītu vērtības tika ņemtas no Yandex.Help lapas, kas parādīta nākamajā ekrānuzņēmumā.

Bet šādu informāciju var iegūt arī no citiem resursiem. Lai to izdarītu, meklētājprogrammā vienkārši ievadiet atbilstošo vaicājumu, piemēram: “Yandex smtp serveris”. Kur var atrast lielu skaitu atsauču par šo jautājumu.

Līdzīgā veidā iestatījumu vērtības var iegūt no citiem SMTP serveriem. Zemāk ir Mail.ru palīdzības lapas ekrānuzņēmums, kurā tiek parādīti pasta pakalpojuma Mail.ru SMTP servera iestatījumi.

Tādējādi, ja Mail.ru izmantojat kā trešās puses SMTP serveri, jāpiemēro šādas PHPMailer klases rekvizītu vērtības:

  • Īpašums Uzņēmēja(poz.28) - pasta servera adrese (smtp.mail.ru);
  • Īpašums SMTPSecure(32. poz.) - Šifrēšanas protokols (ssl);
  • Īpašums Osta(33. poz.) - SMTP servera ports (465).

Līdzīga pieeja būtu jāpiemēro citiem e-pasta pakalpojumiem.

2. Īpašumā Lietotājvārds(30. poz.) nepieciešams norādīt pilnu domēna pastkastes adresi. Šajā gadījumā " [aizsargāts ar e-pastu]".

Tomēr, ja vēstuļu sūtīšanai izmantojat citu kontu, nevis domēna pasta kontu, bet adresi, kas ir tieši saistīta ar pasta pakalpojumu, piemēram, " [aizsargāts ar e-pastu]", tad pieteikumvārdam ir jābūt tikai adreses daļai līdz zīmei "@". Šādā gadījumā pieteikumvārdam būtu vērtība "feedback".

3. PHPMailer nodrošina īpašumu SMTPDbug(50. poz.), kas ļauj pārlūkprogrammas ekrānā parādīt dažāda līmeņa kļūdas. Šī funkcija ievērojami vienkāršo problēmu atrašanu skripta atkļūdošanas laikā.

Parasti parastajā režīmā, kad vērtība ir iestatīta uz 0, detalizētas kļūdu informācijas izvade ir atspējota. Bet, ja rodas problēmas ar pasta sūtīšanu vai atkļūdošanas laikā, ir iespējams izmantot citas vērtības, lai parādītu jēgpilnāku informāciju par kļūdu.

Lai redzētu, kā tas izskatās praksē, īslaicīgi ieviesīsim iestatījumos kļūdu. Piemēram, domēna pasta parolē (īpašums Parole, 31. poz.). Un arī, lai parādītu detalizētu informāciju par kļūdu, kas īslaicīgi iestatīta īpašumā SMTPDbug(poz.50) vērtība 1. Pēc tam, kad viss ir atkļūdots un pārbaudīts, mēs atspējosim SMTP atkļūdošanas režīmu, aizstājot 1 ar 0.

Skripta beigu daļā pēc visu nepieciešamo rekvizītu un metožu norādīšanas metode tiek izmantota vēstules nosūtīšanai sūtīt ()) (51. poz.). Un, ja vēstule ir nosūtīta, un metode sūtīt () priekš objektam $ pasts atgriež true, pēc tam pārlūkprogrammas dialoglodziņā, izmantojot mainīgo $alert Tiks parādīts ziņojums par veiksmīgu pasta nosūtīšanu (52. poz.).

Ja kāda iemesla dēļ pastu nevarēja nosūtīt un attiecīgi metode nevarēja atgriezties true, tad šim stāvoklim tiks pievienots atbilstošs kļūdas ziņojums (55. poz.).

Pārbauda e-pasta sūtīšanu

Pēc tam, kad esam izveidojuši skriptu pasta sūtīšanai, mums, protams, jāaplūko mūsu “radošuma” rezultāts. Vai mēs šeit visu esam ņēmuši vērā un vai neesam pieļāvuši nekādas kļūdas?

Lai to izdarītu, mēģināsim, kā paredzēts, nosūtīt ziņojumu no lietotāja vietnes administratoram no atsauksmju veidlapas. Tālāk ir redzams atsauksmju veidlapas ekrānuzņēmums ar laukiem, kas ir aizpildīti pirms tās iesniegšanas.

Un šeit ir veidlapas iesniegšanas rezultāts.

Kur no ziņojuma pārlūkprogrammas dialoglodziņā ir skaidrs, ka vēstuli nevar nosūtīt SMTP savienojuma problēmas dēļ.

Bet, kopš tagad īpašums SMTPDbug(50. poz.) tiek piešķirta vērtība 1, tad mēs varam redzēt detalizētu informāciju par notikušo kļūdu un noskaidrot tās rašanās iemeslu.

Nākamajā ekrānuzņēmumā redzams, ka, mēģinot izveidot savienojumu, tika atklāta autentifikācijas kļūda, kas nozīmē nepareizas pieteikšanās vai paroles izmantošanu.

Pēc paroles neatbilstības novēršanas (iepriekš tika izmantota nepareiza parole, lai varētu pārbaudīt papildu informācijas izvadi par kļūdu), mēs mēģināsim nosūtīt vēstuli vēlreiz.

Šoreiz viss it kā izdevās un saņēmām ziņu, ka pasts ir veiksmīgi nosūtīts. Acīmredzot, izņemot apzināti ieviesto pagaidu kļūdu domēna e-pasta parolē, citas kļūdas mēs nepieļāvām.

Bet, lai pārliecinātos, ka vēstule tiešām ir piegādāta adresātam, ievadīsim pastu ar adresi [aizsargāts ar e-pastu] un paskaties uz rezultātu.

Kā redzat, vēstule no adreses [aizsargāts ar e-pastu], no kuras mēs nosūtījām e-pasta ziņojumu ar nosaukumu "Atsauksmes" veiksmīgi sasniedza vietnes administratoru. Tajā pašā laikā vēstules pamattekstā ir viss saturs, ko ģenerējām skriptā, izmantojot datus, kas saņemti no atsauksmju veidlapas, proti:

  • Sūtītāja vārds: Nikolajs;
  • Sūtītāja adrese: [aizsargāts ar e-pastu];
  • Ziņojuma tēma: Pārbauda pasta sūtīšanu;
  • Ziņojuma saturs: Testa ziņojums.

Tagad pēc veiksmīgas pasta sūtīšanas pārbaudes varat atspējot SMTP atkļūdošanas režīmu, piešķirot rekvizītu SMTPDbug(50. poz.) vērtība 0.

Tādējādi mēs pabeidzām uzdevumu izveidot rīku pasta sūtīšanai caur SMTP ar autorizāciju, izmantojot trešās puses pasta serveri.

Piemēram, nākamajā rakstā apskatīsim, kā nosūtīt apstiprinājuma e-pastus reģistrētā lietotāja konta datu atkopšanai.

Vietnes avota faili

Vietnes avota failus ar šajā rakstā veiktajiem atjauninājumiem var lejupielādēt no pievienotajiem papildu materiāliem:

  • www direktoriju faili
  • MySQL datu bāzu tabulas

PHP ir diezgan populāri izmantot skriptus, kas automatizē vēstuļu nosūtīšanas procesu. Šajā rakstā mēs apskatīsim vienkāršu skriptu, kas nosūta vēstules adresātiem, izmantojot SMTP ( Vienkāršs pasta pārsūtīšanas protokols ). Būtu pārāk viegli aprobežoties tikai ar šo funkcionalitāti, skripts atbalsta arī pielikumus, tas ir, jūs varat pievienot vēstulei pdf, txt vai doc failu.

Skripta iestatīšana ir pavisam vienkārša, ir nepieciešams tikai sūtītāja pieteikšanās vārds un parole e-pastam, no kura tiks nosūtītas vēstules.

Skripts darbojas ar km_smtp_class.php klasi, labā šajā klasē ir tā, ka tā atbalsta dažādus SSL un TLS protokolus, kas nodrošina drošu datu pārraidi.

Šeit ir pats skripts:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [aizsargāts ar e-pastu]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Adresāta e-pasts $Receiver = " [aizsargāts ar e-pastu]"; // Ziņojuma tēma $Subject = "E-pasta sūtīšana no PHP"; // Ziņojuma teksts (HTML valodā) $Text = "Sveiki!
Ziņojums nosūtīts no skripta Moušons Vietne: http://site"; // Pielikums vēstulē - faila adrese $Attachment = ""; /* $mail = new KM_Mailer(serveris, ports, lietotājs, parole, tips); */ /* Veids var būt: null, tls vai ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_serveris"], $SenderConfig["SMTP_ports"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Pievienot failu if($Attachment) ($mail->addAttachment($Attachment);) // Pievienot citus adresātus $mail->addRecipient( " [aizsargāts ar e-pastu]"); $ pasts-> addRecipient(" [aizsargāts ar e-pastu]"); /* $ pasts-> sūtīt(No, Kam, Tēma, Teksts, Temats = neobligāts) */ $SendMail = $ pasts-> sūtīt($SenderConfig["SMTP_e-pasts"], $Receiver, $Subject, $Teksts );

Skripta iestatīšana galvenokārt balstās uz $SenderConfig masīvu, šeit mums jānorāda SMTP: serveris, ports, pieteikšanās un e-pasta parole. Aprakstīsim katru masīva atslēgu:

SMTP_serveris — SMTP servera adrese (individuāla adrese dažādiem e-pastiem)

Mail.ru pasts: smtp.mail.ru ports: 25, 587 un 465 (ar SSL šifrēšanu)

Yandex pasts: smtp.yandex.ru ports: 25, 587 465 (SSL ports)

Rambler pasts: mail.rambler.ru ports: 25, 587 465 (SSL ports)

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

(Ja nepieciešama to smtp serveru adrese, kuri nav sarakstā, rakstiet komentāros)

SMTP_ports — mēs to jau aprakstījām iepriekš katram smtp serverim.

SMTP_email - precīzāk būtu lietotājs, bet skaidrības labad uzrakstīju epastu, norādām e-pasta adresi.

SMTP_pass — e-pasta parole, kas tika norādīta kā vērtība atslēgā SMTP_email


SMTP_type — noklusējuma vērtība NULL. Protokols, pēc kura tiks nosūtītas vēstules. Protokoli: SSL un TLS

Varat pievienot vēstulei pielikumus, vienkārši norādot faila pilno adresi mainīgajā $Attachment (/var/patch/to/file/File.pdf)

Ja jums ir kādi jautājumi, rakstiet tos zemāk esošajos komentāros.

Tā kā anonīmu ziņojumu sūtīšana no virtuālajiem Windows hostinga serveriem ir aizliegta, vēstuļu sūtīšana jāveic caur SMTP serveri, kuram ir iespējams izmantot arī mūsu pasta sistēmu.

Kā nosūtīt e-pastus, izmantojot PHP?

Izmantojot jebkuru PHP klasi, kas atbalsta autorizāciju smtp serverī. Piemēram, varat izmantot PHPMailer klases kopu.

Varat arī izmantot mūsu piemēru, kas īsteno vēstuļu sūtīšanu, izmantojot smtp serveri, kam nepieciešama autorizācija. Tāpēc neaizmirstiet skriptam pievienot atbilstošu piekļuves informāciju, piemēram:

// Ja jums ir jāparāda SMTP sesijas žurnāls, varat noņemt komentāru no šīs rindas. // $_SERVER["atkļūdošana"] = true; function MailSmtp ($saņēmējs, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP servera adrese$smtp_port = 25 ; // SMTP servera ports$smtp_user = " [aizsargāts ar e-pastu]" ; // Lietotājvārds autorizācijai SMTP serverī$smtp_password = "PasSWORd" ; // Parole autorizācijai SMTP serverī$mail_from = " [aizsargāts ar e-pastu]" ; // Pastkaste, no kuras tiek sūtīta vēstule$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($ zeķe, 512);<" . $mail_from . ">if (! $sock ) ( printf ( "Socket nav izveidota\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 , "PASTAS NO:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Subject: " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" $saturs . smtp_msg ($sock "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Sūtīt no mums: %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket ir uz leju\n" ); iziet(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Iegūts no servera: %s
" , nl2br (htmlspecialchars ($str )); ) $e = eksplodēt (" " , $str ); $kods = array_shift ($e ); $str = implode ( " " , $e ); if ($kods > 499 ) ( printf ( "Problēmas ar SMTP sarunu.

Kods %d.
Ziņojums %s
"
, $kods , $str );

izeja(1);

) ) ) ?>

Lejupielādējiet gatavā skripta piemēru ar funkciju MailSmtp(): smtpauth.php.sample Varat izmantot iepriekš aprakstīto funkciju MailSmtp(), lai tieši aizstātu mail() funkciju. Apsveriet PHP vienkāršākās formas piemēru: // Ziņojumu galvenes, tās nosaka ziņojuma kodējumu, laukus No, Kam utt.$headers = "MIME versija: 1.0\r\n" ; $galvenes .= "Satura veids: teksts/html; charset=windows-1251\r\n" " ; ; $headers .= "Kam: $uz \r\n" ; $galvenes .="No: sūtītāja vārds
// pasts ($kam, $subject, $message, $headers); request_once "smtpauth.php" ;  MailSmtp ($kam, $tēma, $ziņa, $galvenes);  ) ?> Kam: 
 
 

Teksts:

Sūtīt!

Lai šī veidlapa darbotos bez funkcijas mail(), mēs iekļāvām failu smtpauth.php, izmantojot request_once, un izsaucām tajā aprakstīto funkciju MailSmtp() ar argumentiem, kas līdzīgi mail(). Tajā pašā laikā mēs kodā komentējām mail() izsaukumu, lai izvairītos no kļūdām, izpildot skriptu. Kā nosūtīt e-pastus, izmantojot ASP.NET? Ja izmantojat versiju 2.0, tad izmantojiet MailMessage klasi

System.Net.Mail

), labi aprakstīts.

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); Tālāk ir sniegti piemēri tā izmantošanai C# un VisualBasic valodās: Piemērs C# valodai: [aizsargāts ar e-pastu]"); // izveidojot jaunu burtu message.To.Add(" // adresāta adreses pievienošana ziņa.No = new MailAddress("from@" domēns.tld", "Sūtītāja_vārds"); // norādot sūtītāja nosaukumu un adresi message.Subject = "Ziņojuma tēma"; // precizējot vēstules tēmu message.BodyEncoding = System.Text.Encoding.UTF8; // norādot burtu kodējumu message.Body = "Ziņojuma teksts"; // norādot vēstules tekstu (pamattekstu). SmtpClient klients = new SmtpClient("smtp.site",25); // jauna savienojuma izveide ar serveri "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // nosaka ziņojumu nosūtīšanas metodi client.EnableSsl = false; // atspējo nepieciešamību izmantot drošu savienojumu ar serveri client.UseDefaultCredentials = false; // atspējot noklusējuma autorizācijas informācijas izmantošanu client.Credentials = new NetworkCredential("postmaster@ // adresāta adreses pievienošana", "***parole***"); // norādot nepieciešamo informāciju (lietotājvārdu un paroli) autorizācijai SMTP serverī klients.Sūtīt(ziņa); // nosūtīt ziņu %>

Lejupielādējiet gatavās veidlapas piemēru, kurā parādīta šīs metodes izmantošana: MailForm.aspx.

VisualBasic valodas piemērs:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@// adresāta adreses pievienošana", "Sūtītāja_nosaukums") smtpMssg.To.Add (" [aizsargāts ar e-pastu]") " pievienojot adresāta adresi smtpMssg.Subject = "E-pasta tēma" "norāde uz vēstules tēmu smtpMssg.Body = "Ziņojuma teksts" " norāde uz vēstules tekstu (pamattekstu). smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " burtu kodējuma norāde smtpMssg.IsBodyHtml = false " burta formāta norāde (true - HTML, false - nevis HTML) Aptumšot SmtpMail kā jaunu SmtpClient ("smtp.site", 25) " jauna "SmtpClient" tipa objekta deklarācija SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "norāde par vēstules piegādes veidu SmtpMail.UseDefaultCredentials = False "pēc noklusējuma atspējot autorizācijas akreditācijas datu izmantošanu" SmtpMail.EnableSsl = False " atspējo nepieciešamību izmantot drošu savienojumu ar serveri SmtpMail.Credentials = new NetworkCredential("postmaster@ // adresāta adreses pievienošana", "***parole***") "norādot nepieciešamo informāciju (lietotājvārdu un paroli) autorizācijai SMTP serverī SmtpMail.Send(smtpMssg) " nosūtot ziņojumu %>

Ir arī novecojusi (un novecojusi) SmtpMail klase (izmantojot nosaukumvietu System.Web.Mail). Tālāk ir sniegts piemērs tās izmantošanai VisualBasic valodai:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " jauna objekta "MailMessage" tipa deklarācija smtpMssg.From = "Sūtītāja_nosaukums // adresāta adreses pievienošana>" "Sūtītāja vārda un adreses norāde smtpMssg.To = "admin@ // adresāta adreses pievienošana" " norāde par saņēmēja adresi smtpMssg.BodyFormat = MailFormat.Text " vēstules formāta norāde smtpMssg.BodyEncoding = Kodēšana.UTF8 "norādot burtu kodējumu smtpMssg.Subject = "E-pasta tēma" "norāde uz vēstules tēmu smtpMssg.Body = "Ziņojuma teksts" " norāde uz vēstules tekstu smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "norādot uz servera nepieciešamību pēc SMTP autorizācijas smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ // adresāta adreses pievienošana") "lietotājvārds autorizācijai smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***parole***") "parole autorizācijai SmtpMail.SmtpServer = "smtp.site" ", norādot SMTP servera adresi SmtpMail.Send(smtpMssg) " nosūtot ziņojumu %>

Kā nosūtīt e-pastus, izmantojot ASP?

Lūdzu, ņemiet vērā, ka, izmantojot mūsu smtp serveri, ir nepieciešama autorizācija, tāpēc neaizmirstiet skriptam pievienot atbilstošu piekļuves informāciju, piemēram:

<% 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@// adresāta adreses pievienošana" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "parole" .Atjaunināt Beigt ar Set cdoMessage = CreateObject("CDO.Message") Ar cdoMessage Set .Configuration = iConfig .From = "Pārbaudīt lietotāju // adresāta adreses pievienošana>" .To = "Lietotājs " .Subject = "Sveiks, lietotāj" .TextBody = "Es rakstu šo ziņojumu no ASP skripta." .Sūtīt Beigt ar Set cdoMessage = Nekas Iestatīt iConfig = Nekas %>

Dažās CMS jau ir iebūvēti rīki korespondences sūtīšanai vai atbilstošie moduļi, apskatīsim populārākos.

Wordpress

Šai CMS ir īpašs modulis “WP Mail SMTP”, tā konfigurācijas piemērs ir aprakstīts moduļa lapā.

Pievērsiet uzmanību piemēra ilustrācijai mūsu pasta sistēmā ir nepieciešams izmantot 25. portu un SSL šifrēšana nav nepieciešama.

Joomla

Administrēšanas panelī dodieties uz sadaļu “Vispārīgie iestatījumi”, atlasiet cilni “Serveris”. Laukā “Pasts” ir jāizvēlas sūtīšanas metode kā “SMTP serveris”, laukos “SMTP servera adrese” un “SMTP pieteikšanās” un “SMTP parole” norādiet atbilstošos pasta sistēmas datus, piemēram: smtp.site, kaste@jūsu_domēns un atbilstošs parole.

Drupal

Šai CMS ir arī savs modulis darbam ar SMTP serveri, pamatojoties uz PHPMailer. Jūs varat lejupielādēt šo moduli tā lapā CMS Drupal vietnē. Moduļa instalēšanas apraksts ir pieejams arhīvā.

NetCat

Šai CMS nav iebūvētu funkciju darbam ar SMTP serveri. Lai nosūtītu pastu, izmantojot vietnes skriptus, mēs varam piedāvāt izmantot mūsu risinājumu, lai to savienotu, jums jāveic šādas darbības:

  • Lejupielādējiet arhīvu ar nepieciešamajiem failiem no mūsu vietnes ( send_auth_mail.php Un mail.inc.php) un izpakojiet to savā datorā;
  • Rediģēt failu send_auth_mail.php no arhīva, norādot tajā savienojuma informāciju ar vēlamo SMTP serveri:

    • $mail_smtpServer = "smtp.vietne"; (SMTP servera adrese)
    • $mail_port = "25" ; (savienojuma ports)
    • $pasta_lietotājvārds = "[aizsargāts ar e-pastu]" ; (lietotājvārds autorizācijai SMTP serverī)
    • $pasta_parole = "Parole"; (parole autorizācijai SMTP serverī)
  • Izveidojiet faila rezerves kopiju domain.tld/www/netcat/admin/mail.inc.php;
  • Augšupielādējiet failus send_auth_mail.php Un mail.inc.php uz virtuālo vietni direktorijā domain.tld/www/netcat/admin/

// adresāta adreses pievienošana jāaizstāj ar jūsu domēna vārdu.

Piedāvātais risinājums darbojas ar visiem NetCat moduļiem, kas izmanto šīs CMS standarta funkcijas pasta sūtīšanai.

© 2024 ermake.ru - Par datoru remontu - Informācijas portāls