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 nepieciešamā forma izveidots. 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ā.
ekrānuzņēmums 73
Zemāk ir GitHub tīmekļa pakalpojuma lapa, kurā ir atzīmēta saite uz parasto PHPMailer bibliotēkas lejupielādi.
Turklāt, 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ņa nosūtīta"; //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 servisa, š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 ievadīto pagaidu kļūdu domēna 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
Pasta sūtīšana, izmantojot SMTP no lokālā servera, ļauj pārbaudīt ziņojumu sūtīšanu no vietnes, kas atrodas vietējā datorā vai, vienkāršāk sakot, lokālā servera. Lai to izdarītu, varat izmantot jebkuru pasta pakalpojumu Yandex, Google vai mail.ru.
Pirmkārt, SMTP (Simple Mail Transfer Protocol) ir plaši izmantots tīkla protokols, kas paredzēts e-pasta pārsūtīšanai pa TCP/IP tīkliem. Un visiem populārajiem e-pasta pakalpojumiem ir šādi protokoli.
Līdz ar vietējo serveru parādīšanos vairs nebija vajadzības izvēlēties mitināšanas pakalpojumu sniedzēju, lai pārbaudītu atsevišķu skriptu vai cms sistēmu veiktspēju, vēl jo mazāk par to maksāt. Ir daudz vienkāršāk visu pārbaudīt datorā, un pēc tam varat visiem parādīt, ko esat "padarījis".
Daudziem no šiem serveriem jau ir iebūvēta programmatūra un nepieciešamā funkcionalitāte darbam ar pastu; jums tā vienkārši ir pareizi jākonfigurē.
Lai pārbaudītu šāda pasta funkcionalitāti, ir nepieciešams minimums:
- Varat izmantot Openserver kā vietējo serveri.
- Un vienkāršs skripts, kura veidni var atrast tieši zemāk.
- Varat izmantot jebkuru pasta serveri.
Php pasta sūtīšana, izmantojot SMTP skripta iestatīšanu
Vienkārša skripta veidne, ko var kopēt tālāk vai lejupielādēt no simtiem līdzīgu vietņu, ir jārediģē.
Pirmkārt, jums ir jāmaina dažas vērtības skripta veidnē.
uz
— mainīt uz pasta adresi, uz kuru tiks nosūtīts pasta ziņojums.
priekšmets
- vēstules tēma
ziņa
— pats ziņojums vai vēstules pamatteksts.
Mana skripta piemērs:
Protams, varat nedaudz paplašināt funkcionalitāti un likt skriptam parādīt ziņojumu par pasta sūtīšanu. Lai gan patiesībā sūtīšanu veic SMTP serveris, un skripts tikai ģenerē ziņojumu.
Piemēram, varat uzrakstīt šo:
Visām aizvietotajām vērtībām jābūt pēdiņās, pretējā gadījumā skripts radīs kļūdu. Pēc tam varat saglabāt skriptu vietējā servera mapē.
Piemēram: domains/send/index.php un sāciet iestatīt pasta sūtīšanu, izmantojot SMTP opensrerver.
![](https://i0.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_7.png)
Pasts tiks nosūtīts uz jebkuru adresi, kas tiks norādīta skriptā vērtības vietā "uz"
, bet šo pastu apstrādās un nosūtīs tieši tas SMTP, kas būs norādīts openserver iestatījumos.
- Servera palaišana
- Atveriet atvērtā servera moduli ar iestatījumiem izvēlnē “pasts”.
- Mēs aizpildām visus laukus, kā parādīts attēlā, vienlaikus aizstājot lietotājvārdu, sūtītāja e-pastu un paroli no īstas Yandex pastkastes.
![](https://i2.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_1.png)
Mēs saglabājam iestatījumus un pēc servera restartēšanas jūs varat piekļūt pašam skriptam. Mapē “Manas vietnes” atveriet mapi “sūtīt”, kurā atrodas iepriekš saglabātais index.php skripts.
![](https://i2.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_4.png)
Tiklīdz šim skriptam tiek piekļūts, jaunā pārlūkprogrammas logā tiks parādīta informācija, kas norāda, ka skripts ir pabeigts.
![](https://i0.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_5.png)
Pēc tam jums vajadzētu pārbaudīt savu pastkasti, kuras adrese bija norādīta skriptā, lai redzētu, vai vēstule ir pienākusi.
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_6.png)
Ja tā nav, tas nozīmē, ka kaut kas nav pareizi konfigurēts vai vēstule nonāca surogātpasta mapē.
Visi pārējie iestatījumi izskatās līdzīgi, taču katram gadījumam papildu informācija nenāks par ļaunu.
Lai iestatītu pasta sūtīšanu, izmantojot SMTP pasta ru, jums vienkārši jāaizstāj Yandex parametri ar pasta ru parametriem.
Un, lai katru reizi nepārbūvētu vietējo serveri, vislabāk ir konfigurēt dažādus atvērtā servera profilus. Kā to izdarīt, ir parādīts video pamācībā.
Šajā gadījumā pietiks tikai ar profila ielādi, un visi iestatījumi, kas tika norādīti šim profilam, būs pieejami pēc servera restartēšanas. Tā ir ļoti ērta lieta un darbojas ļoti vienkārši.
Katram profilam (nav svarīgi, kā tas tiks saukts) ir jāveic savi iestatījumi, ja vien, protams, neplānojat izmantot skriptus, cms sistēmas un lietojumprogrammas ar dažādiem parametriem.
Ja nē, varat iztikt ar noklusējuma iestatījumiem.
Kas attiecas uz SMTP pasta ru, šeit viss ir identisks.
Yandex dati tiek mainīti uz pasta ru datiem
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_2.png)
Pasta sūtīšana caur smtp google
Lai iestatītu pasta sūtīšanu, izmantojot Google SMTP, ir jāpieliek nelielas pūles.
Pirmkārt, Google profila izveide ir grūtāka nekā citās Yandex un pasta ru sistēmās
Otrkārt, sistēma vienkārši nelaidīs vēstuli cauri, pat ja jūs norādāt savu pieteikšanās informāciju. Sākumā viņa nosūtīs vēstuli ar visu nepieciešamo informāciju par turpmākajiem norādījumiem.
Citādi Google tas ir konfigurēts tieši tādā pašā veidā. Mainās tikai visi dati.
![](https://i1.wp.com/starting-constructor.ru/wp-content/uploads/2018/01/Screenshot_3.png)
Lai konfigurētu pasta sūtīšanu, izmantojot citu SMTP, visi dati būs aptuveni vienādi.
Ja jums viss izdevās un vēstules sasniedza norādīto adresātu, tad viss tika izdarīts pareizi. Būtu lieliski, ja komentāros padalītos ar savu pieredzi.
Lai kādai noteiktai vietnei būtu iespēja strādāt efektīvi un produktīvi, tās izveidei ir jāpieiet maksimāli atbildīgi un rūpīgi. Ī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īviem rezultātiem un patiesi efektīva instrumenta iegūšanu. 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.
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); 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:<"
.
$mail_from
.
">" ); smtp_msg ($sock , "RCPT UZ:<"
.
$reciever
.
">" ); smtp_msg ($sock , "DATA" ); $headers = "Subject: " . $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 ) ( if ( ! $sock ) ( printf ("Broken socket!\n" ); iziet(1 ); ) if (isset($_SERVER [ "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 funkciju mail (); apsveriet vienkāršākās PHP 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, $tēma, $ziņa, $headers); request_once "smtpauth.php" ; MailSmtp ($kam, $tēma, $ziņa, $galvenes); ) ?>
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.
Tālāk ir sniegti piemēri tā izmantošanai C# un VisualBasic valodās:
Piemērs C# valodai:
<% @Page Language="c#" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
MailMessage message = new MailMessage(); // izveidojot jaunu burtu ziņa.To.Pievienot(" [aizsargāts ar e-pastu]"); // 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.IsBodyHtml = false; // norādot burta formātu (true — HTML, false — not HTML) 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@ domēns.tld", "***parole***"); // norādot nepieciešamo informāciju (lietotājvārdu un paroli) autorizācijai SMTP serverī klients.Sūtīt(ziņa); // sū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@domēns.tld", "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@ domēns.tld", "***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 domēns.tld>" "Sūtītāja vārda un adreses norāde smtpMssg.To = "admin@ domēns.tld" " 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@ domēns.tld") "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@domēns.tld" .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 domēns.tld>" .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 vai atbilstošu moduļu nosūtīšanai; 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 ilustrācijai piemērā; 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šus 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ā kopā ar to.
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, jāveic šādas darbības:
domēns.tld 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.