SLANJE ELEKTRONSKE POŠTE E-MEJLA Slanje poruke elektronske pošte Pomoću PHP-a moguće je na jednostavan način poslati poruku mejlom. Poruka može biti poslata automatski (bez interakcije s korisnikom) ili može biti poslata kad korisnik upiše tekst poruke u obrazac i klikne na dugme za slanje podataka. Za slanje poruke mejlom u jeziku PHP se koristi funkcija mail. Argumenti koje ona prima su: adresa primaoca (ukoliko je primaoca više, adrese moraju biti odvojene zarezom); ime.prezime@domen.com naslov poruke – u naslovu poruke se ne smeju nalaziti znakovi za novi red tekst poruke – kao znak za novi red, u tekstu poruke treba se koristiti znak "\n", a linija može da sadrži maksimalno 70 znakova dodatna zaglavlja (opcionalno) – pošiljalac poruke (From), dodatni primalac (Cc, Bcc) i druga; zaglavlja moraju biti odvojena kombinacijom znakova "\r\n" dodatni parametri (opcionalno) – služe za proslijeđivanje parametara programu na serveru koji šalje poruku o 2 Funkcija mail vraća vrednost TRUE ako je poruka uspešno poslata, a FALSE ako slanje nije uspelo. Primer slanja poruke izgledao bi ovako: 3 Podešavanje stavki za slanje poruke Pre slanja poruke moguće je podesiti stavke za slanje poruke elektronske pošte. Pregled stavki dat je u sljedećoj tablici: 4 Ove stavke nalaze se u datoteci php.ini. Za podešavanje ovih i drugih konfiguracijskih stavki iz kôda može se koristiti funkcija ini_set. Argumenti koje ona prima su: naziv stavke vrednost stavke Podešavanje servera elektronske pošte i adrese pošiljaoca, te potom slanje poruke, izgledaće ovako: 5 Slanje podataka iz obrasca putem poruke elektronske pošte U fajl Adresar.php naknadno ćemo dodati tekstualno polje za spremanje adrese elektronske pošte (mejl), a ta adresa će se, u obliku linka, prikazivati prilikom pregleda liste unosa. Klikom na link otvoriće se novi obrazac pomoću kojeg će se moći poslati poruka na navedenu adresu. U programu PHP datoteku SpremiAdresu.php dodaćemo masno otisnutu naredbu: 6 Gornja naredba će pročitati vrednost s nazivom email poslanu pomoću POST metode i spremiti je u varijablu $email. Među naredbe koje ispisuju pročitane vrednosti, dodaaćemo masno otisnutu naredbu: Uz ostale vrednosti, u datoteku Adresar.txt biće zapisana i adresa elektronske pošte. U datoteci ćemo promeniti naredbu fwrite kako je naznačeno: 7 U editoru Visual Studio Code za PHP u datoteku PregledAdresa.php dodajemo masno otisnutu oznaku th: Prilikom čitanja iz datoteke, potrebno je pročitati i adresu elektronske pošte, pa dodajemo sledeću (masno otisnutu) naredbu u datoteku: 8 Među naredbe koje ispisuju pojedini red tabele, dodajemo naredbu koja će ispisati adresu elektronske pošte (i to kao link koji će voditi na obrazac za slanje poruke): Link će voditi na stranicu UnosPoruke.php, a kao parametar u URL-u (dakle, metodom GET) proslediće se adresa na koju treba poslati poruku, sadržana u varijabli $email. U editoru za PHPVisual Studio Code napravićemo novu datoteku UnosPoruke.php. Ova će datoteka sadržavati obrazac za upisivanje poruke koja će se poslati. 9 Unutar stvorene datoteke dodajemo oznaku head s oznakama title i meta, i zatim oznake body i h2: Unutar oznake body dodajemo oznaku za obrazac (form): 10 Obrazac će se koristiti metodom POST za slanje podataka, a skripta koja će obrađivati poslane podatke je u datoteci PosaljiPoruku.php. Unutar obrasca dodaju se dva elementa za unos: Obrazac će imati dva elementa za unos – polje za unos teksta u koje se upisuje naslov poruke, i višelinijsko polje za unos teksta u koje se upisuje tekst poruke. Unutar obrasca dodajte i skriveno polje (oznaka input s atributom type postavljenim na hidden): 11 Uloga ovog polja je da se adresa elektronske poruke prosledi skripti PosaljiPoruku.php zajedno s podacima unesenim u obrazac. Vrednost atributa value skrivenog polja mora se postaviti dinamički, jer se unapred ne zna koja će biti odabrana adresa. To se postiže tako da se na mesto gde treba biti ispisana vrednost atributa stave oznake za PHP kôd, a unutar njih se pomoću naredbe echo ispisuje željena vrednost. Odabrana adresa će biti dostupna kao parametar u URL-u, pa se može pročitati iz polja $_GET. Nakon skrivenog polja, unutar obrasca dodajte još i dugme za slanje podataka i dugme za brisanje podataka iz obrasca: 12 Na kraju dodajte još i linkove na stranice za unos nove adrese i pregled unesenih adresa. 13 U editoru Visual Studio Code za PHP u datoteku stvaramo novu datoteku naziva PosaljiPoruku.php. Ova će skripta primati podatke s obrasca i izvršavati slanje poruke elektronske pošte. U datoteku upišite sledeći HTML kôd: U datoteku upišite sledeće (masno otisnute) PHP naredbe, unutar oznaka za PHP Prve tri naredbe čitaju podatke prosleđenene POST metodom, dostupne unutar polja $_POST, i spremaju ih u varijable $email, $naslov i $tekst. Sledeće tri varijable ispisuju pročitane vrednosti (zajedno s opisnim tekstom). 14 Nakon ovih naredbi upisaćemo u datoteku naredbe za podešavanje postavki za slanje elektronske pošte: Prva naredba zadaje naziv servera koji će slati poruke. U tu svrhu se u ovom primeru koristi server gmail.com. Ako on nije dostupan može se koristiti server ISP-a preko kojeg smo spojeni na Internet. 15 Nakon ovih naredbi dodajemno naredbe za slanje poruke i za ispisivanje odgovarajućeg teksta ako je slanje uspelo (opciono): Adresu onoga ko šalje nećemo navoditi jer je već pre postavljena pomoću funkcije ini_set. Ako slanje poruke uspe, funkcija će vratiti logičku vrednost TRUE i ispisaće se tekst "Poruka je uspešno poslata". U suprotnom, ispisaće se tekst “Poruka nije uspešno poslata”. 16 Na kraju dodajemo još i linkove na stranice za unos nove adrese i pregled unesenih adresa (radi omogućavanja povratka). 17 18 19 Čekirati mejl 20 21