Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Načini slanja pošte. Implementacija klasa potomaka Model i Controller, stvaranje View "s

Načini slanja pošte. Implementacija klasa potomaka Model i Controller, stvaranje View "s

22.05.06 83,2K

Jeste li ikada poželjeli instalirati obrazac na svoju web stranicu Povratne informacije? Vjerojatno ste naišli na slične skripte. Čudno je da su gotove skripte za slanje obrasca na e-mail vrlo popularne (to možete vidjeti u bilo kojoj arhivi skripti), a ima ih jako puno. Postoje jednostavni u kojima se ništa ne mijenja, ali postoje složeni i veliki sustavi ta funkcija na mysqlu, omogućuje dinamičku promjenu bilo kojeg polja, sadrži hrpu postavki... Ali jesu li one stvarno potrebne? Po mom mišljenju, potreba za slični sustavi vrlo sumnjivo.

Testirajte slanje pošte na kućno računalo iznevjeriti. Da biste to učinili, potreban vam je hosting s podrškom za php i funkcijama slanja pošte. Preporučujem vam davatelja hostinga runweb.ru. Ovaj pružatelj nudi odlične cijene, najveća brzina pristup i izvrsna usluga.

Načini slanja pošte

Postoje dva glavna načina slanja pošte s poslužitelja koristeći php.
Želim proći kroz oba ova po redu.

Prvi i najlakši je za korištenje php funkcije pošta (). Funkcija je vrlo jednostavna i jasna, iako slanje pošte s koristeći poštu() također ima niz nedostataka. Najvažnije je da se pismo ne šalje izravno, već putem php-a. Istovremeno, php program umeće neka svoja polja u slovo. Na primjer, nećete moći ispravno navesti pošiljatelja. U polju "od" (odnosno od koga je pismo stiglo) u većini slučajeva bit će naziv poslužitelja. Stvar je u tome što php zamjenjuje svoja zaglavlja u servisnoj liniji slova "od".

Međutim, slanje pošte pomoću funkcije mail () ostaje najlakše
način slanja pisma s poslužitelja. Pogledajmo pobliže ovu metodu.

Funkcija mail () ima sljedeću sintaksu:

pošta ($ do, $ predmet, $ tijelo, $ zaglavlja);

$ to je adresa primatelja. Na primjer, " [e-mail zaštićen]". $ predmet - predmet pisma. Na primjer, "Primili ste pismo". $ tijelo - tekst poruke. $ zaglavlja - bilo koja zaglavlja pisma. Na primjer, adresa pošiljatelja će izgledati ovako :" od: [e-mail zaštićen]".

Ovdje kompletan primjer slanje pošte putem pošte ():

pošta (" [e-mail zaštićen]"," Predmet e-pošte "," Pozdrav! NPrimili ste e-poruku. "," From: site_name ");

Imajte na umu da kada koristite ovu funkciju na kućnom računalu, može dati pogrešku, jer ne može poslati e-poštu bez poslužitelja e-pošte.

Sada da vidimo kako možete slati poštu koristeći sendmail.

sendmail je standardni program operacijski sustav unix koji šalje poštu.
php može pokretati unix programe pomoću cijevi. Ova unix mogućnost omogućuje vam da usmjeravate podatke iz jednog programa u drugi, slično kao što pišemo u datoteku. Jedina datoteka u ovom slučaju je program (posebno sendmail) koji prima podatke.

Program sendmail ima mnogo opcija, mi ćemo koristiti neke od njih. Da biste koristili sendmail, morate otvoriti kanal do njega. U php-u se to radi pomoću naredbe popen () koja je po sintaksi identična naredbi fopen (). Korištenjem popen () otvaramo stream za sendmail
da u njega upišete (sjećate li se parametar načina "w"?), nakon čega mu možete poslati podatke regularna ekipa fputs (). Pogledajmo kako izgleda cijeli postupak slanja pisma putem sendmaila:

rfc zaglavlja slova $ od = " [e-mail zaštićen]"; $ primatelji =" [e-mail zaštićen]"; $ headers =" content-type: text / plain; charset = "windows-1251" "; // otvori sendmail i pošalji poštu $ mail = popen (" / usr / sbin / sendmail -i -f $ od - $ primatelji "," w "); $ text_headers =" od: $ fromnsubject: $ subject ". $ zaglavlja; fputs ($ mail, $ text_headers); fputs ($ mail," n "); fputs ($ mail, $ body); // provjera grešaka $ result = pclose ($ mail ) >> 8 & 0xff; if ($ rezultat) echo "sendmail error! kod pogreške: $ rezultat ";?>

U ovom programu, prva stvar koju radimo je opisivanje rfc zaglavlja. rfc su servisna polja koja sadrže sve informacije o pismu. Možete vidjeti primjer rfc-a, na primjer, u programirati bat !, klikom desni klik mišem na tekstu pisma i odaberite "rfc-822 zaglavlja" (naziv stavke može se razlikovati). Da biste ih uklonili, ponovite korake. U zaglavlju opisujemo polja "content-type" koja označavaju da je poruka tekstualna i u windows-1251 kodiranju (standardno windows kodiranje). "Koi8-r" se također može koristiti kao kodiranje, ovo je standardno unix kodiranje. U ovom članku nećemo detaljno ulaziti u moguća rfc zaglavlja. Učinit ćemo to malo kasnije,
kada ćemo bliže surađivati ​​s poštom. Dakle, nakon što smo opisali servisne varijable i zaglavlja poruka, otvaramo sendmail. Obratite pažnju na put do programa "/ usr / sbin / sendmail". Na različitih poslužitelja može biti drugačije!
Ako ova linija ne radi, pitajte svog ISP-a gdje se nalazi sendmail. Navedeni su sljedeći parametri: "-i -f $ od - $ primatelja". Ovo su standardni parametri za slanje pisma i u njima se zamjenjuju dva polja: $ od - od koga, $ primatelji - adrese primatelja. U našem slučaju varijabla $ recipients sadrži samo jednu adresu. Zapravo, možete koristiti nekoliko adresa, navodeći ih odvojene razmakom:

$ primatelji = " [e-mail zaštićen] [e-mail zaštićen] [e-mail zaštićen]";

Zatim u tok prvo upisujemo zaglavlja poruke (varijabla $text_headers), zatim ih razdvajamo prijelomom reda i pišemo tekst poruke. Posljednji korak- zatvaranje streama i provjera greške. Ako se izvrši ispravno, nula se stavlja u varijablu rezultata $, a ako je došlo do greške, u nju se upisuje broj pogreške.

Pogledajmo sada primjer korištenja mogućnosti slanja pošte. Da bismo to učinili, izradit ćemo obrazac za povratne informacije koji možete instalirati na svoju stranicu. Koristit ćemo sendmail kao metodu za slanje pošte.

Napravite obrazac za povratne informacije

Naš obrazac za povratne informacije bit će jedna skripta. Ova skripta će prikazati obrazac i poslati pismo.

contact.php:

Povratne informacije pogreška:$ s ";?>

Izravna komunikacija
Tvoje ime: *
Tvoj email: *
Vaša web stranica:
Tvoja poruka: *

Polja označena zvjezdicom (*) moraju biti popunjena.> 8 & 0xff; ) else $ rezultat = (pošta ($ primatelji, $ predmet, $ tijelo, "od:". $ od. "rn". $ zaglavlja)? FALSE: TRUE); if ($ rezultat) echo "Poruka nije poslana!"; else echo "Hvala, vaša poruka je poslana. Administrator će vas uskoro kontaktirati!"; ?>

Pogledajmo sada kako ovaj program radi. Izvršenje počinje s linijom "if (! $ A) show_form ();", jer je prije toga bila navedena funkcija koja se, naravno, ne izvršava. U ovom retku provjeravamo da li je došlo do pokušaja ispunjavanja obrasca (iz obrasca, kao što vidite, prosljeđuje se varijabla $ a, što se provjerava u ovom retku). Ako takvog pokušaja nema, poziva se funkcija show_form () koja prikazuje obrazac.

U posljednje vrijeme sve češće se moram nositi s prosječnošću u IT-u. Prijatelji traže savjet, a kada počnete shvaćati temu, kosa vam se diže na glavi na svim mogućim mjestima. Saznati koliko su prijatelji platili slične usluge, doživljava napad šoka.

Deseci tisuća rubalja jednostavno se bacaju i umjesto pojednostavljenja, vlasnici poduzeća dobivaju dodatne probleme. Možda će netko vidjeti probleme svoje organizacije u bilješci i moći izvući odgovarajuće zaključke.

Ima ljudi koji vole svakoga grditi i veličati svoje znanje. Takvih "ljevičara" ima u svakoj sferi. Možda su za svoju praksu prošli kroz vatru, vodu i bakrene cijevi i imaju svako pravo tako razmišljati. U području informacijske tehnologije teško je susresti ljude koji potpadaju pod ovaj opis. Previše je tehnologija i nemoguće je biti stručnjak za apsolutno sve.

Osoba može biti stručnjak u nekoliko područja, ali ne u svim. Na primjer, moj posao većinu vremena je povezan s razvojem softvera. Osjećam se puno sigurnije u ovom području nego u administraciji sustava. Nikada se neću raspravljati s cool administratorom o nijansama usmjeravanja paketa, tk. I sam imam površno znanje.

Neće mi biti teško postaviti serverske komponente, podići FireWall ili Internet pristupnik, ali ne pokušavam trošiti vrijeme na detaljno proučavanje slojeva OSI modela. Ne sramim se ovoga, tk. Više me zanima neko drugo područje.

Danas sam imao priliku razgovarati sa sličnim znalcem u području baza podataka. Čovjek koji se ponosno nazivao profesionalcem potpuno je uništio bazu CIS-a i nije ni pomislio priznati svoju krivnju. Upravo je vršio ažuriranje i nešto je pošlo po zlu. Sigurnosna kopija prije instaliranja ažuriranja nije htio raditi (zaista, zašto?) i kad se pojavi problem, nije razbio glavu. Upravo sam prenio kopiju prije mjesec dana i izvijestio o obavljenom poslu.

cool? Skoro sam pao sa stolice od takve profesionalnosti. Nije dovoljno što politika nije stvorena Rezervni primjerak, pa se ovaj majstor nije potrudio napraviti kopiju prije takve važna operacija kao ažuriranje strukture baze podataka. Pokazalo se da mu zaborav nije glavni problem.

Uzeo sam broj telefona ovog stručnjaka i odlučio nazvati osobno. Nikad se ne zna, odjednom je osoba imala dobre razloge za ovu odluku. Bilo bi bolje da se ne javljate. Nije bilo razloga, ali nesposobnost i nedostatak elementarnog znanja – cijeli val.

Glupo se pokušao opravdati, a moja su pitanja izazvala samo iznenađenje. Zamislite, rekao mi je da program ne koristi nikakve tablice. Sve je pohranjeno u jednoj datoteci. Ove su riječi konačno ubile čestice vjere u mene za pozitivan ishod. Pričao mi je o FireBirdu.

Budući da je sve pohranjeno u jednu datoteku i program ne može "čitati" ovu datoteku, onda se samo trebate vratiti stari primjerak... Zašto pokušavati shvatiti problem i barem se izvući važna informacija direktno sa stolova? Bilo je besmisleno nastaviti razgovor. Specijalist je jednostavno ubio rad ljudi u pola mjeseca jednim potezom i dobio nagradu.

Ako vaša organizacija nije spremna imati stalnog IT stručnjaka, preporučujem vam da vodite računa o dokumentiranju strategije interakcije s osoba koja dolazi... Potrebno je formalizirati njegove obveze na papiru, te imati popis infrastrukturnih objekata za koje je odgovoran.

To vas neće spasiti od problema, ali će dati jasno razumijevanje onoga što osoba radi i koja područja njegova rada zahtijevaju povećanu pozornost. Na primjer, ako ne razumijete IT, a vaša tvrtka ima baze podataka o kojima ovisi život organizacije, onda nemojte biti škrti u kupnji stručni program za sigurnosnu kopiju. Pustite gostujućeg stručnjaka da ga postavi, a vi ćete primati svakodnevna izvješća e-poštom o rezultatima sigurnosne kopije.

Nisam slučajno počeo govoriti o softveru, jer u praksi sam smatrao da nisu svi IT stručnjaci spremni automatizirati proces sigurnosnog kopiranja. Oni ili sami preuzimaju odgovornost za izradu kopija ili samo igraju ruski rulet. Kao rezultat toga, samo vi - čelnik tvrtke - gubite od ove situacije.

Osjećam beznađe, kada se čini da je sve besmisleno i da neće voditi ničemu, krahu života. To je osjećaj odustajanja i sve misli ili radnje koje su osmišljene da se nadamo ili da nešto promijene se odbacuju kao beskorisne. U meni je popraćen osjećaj usamljenosti, kada se čini da me nikome ne trebam sa svojim problemima i nevoljama.

Prije nisam ništa radila da mi bude lakše, ali, naprotiv, počinjem se sažaljevati, jer se osjećam loše, ne želim ništa i ništa mi ne odgovara.

Danas se bavim nekim aktivnostima: na primjer, čišćenje kuće, igranje računala.

Najviše me zanima kako se osjećaji žive, jer vjerojatno ne znam kako ih živjeti.

Beznađe.

Samo jednom u životu doživio sam takav osjećaj!

Imao sam 15 godina.

U sljedećem posjetu jednom od treninga preplavilo me ustrajno povjerenje u svoje sposobnosti, s vremena na vrijeme postizao sam uspjeh...

I eto, situacija, zadatak s tri lika, igra se situacija...banalna, kako mi se tada činilo.

Za mene je beznađe nedostatak želje za bilo čime, potpuna depresija i ravnodušnost prema svemu, depresija.

Ne želim doživjeti ovaj osjećaj, jer mi u takvom stanju sve prestaje biti važno i odustajem. Ne bježim i ne davim ga.

Prije sam samo živio s tim i koristio ga, ali sada znam da iz svake situacije postoji izlaz i VS će mi pomoći da ga pronađem. Nisam obraćao pažnju na to jesam li sklon prenijeti osjećaj beznađa na druge ljude, ali ne priznajem si uvijek sigurno, iako s vremenom to postaje očito. Želim naučiti vidjeti izlaz iz situacija, da se ne pojavljuju ni misli da nema izlaza.

Beznađe je kada ne vidim izlaz i odustanem, ne želim ništa učiniti, jer ne vidim smisao u tome kada nema nade, koja bi u teoriji trebala umrijeti posljednja.

Definitivno ne želim živjeti ovaj osjećaj, ali uvijek postoji izlaz, baš kao u ovisnosti o drogama, iz koje nisam vidio izlaz, ali zahvaljujući suncu i ljudima koji su mi ga pokazali, danas sam trijezan sam, s Bogom, s tobom. Beznađe je težak osjećaj, pokušavam delegirati i pronaći izlaz, jer bezizlaznih situacija nema. Vjera puno pomaže. Sada znam da priznati bezizlaznu situaciju znači odustati i ne raditi ništa, stoga nemojte biti pesimistični. U svakom negativnom možete pronaći pozitivno - postoji izlaz iz svake bezizlazne situacije.

Ovaj vodič će vam pokazati kako stvoriti najosnovniji HTML obrazac za kontakt.

Prije svega kreirajte 2 datoteke: contact_form.html i kontakt.php... Prva datoteka će sadržavati kod vašeg kontakt obrasca, a druga će obraditi podatke ovog obrasca.

HTML

Ispod je primjer HTML koda Kontakt obrazac:

Tvoje ime

Tvoj email

Poruka