Kako poslati e-mail u PHP-u koristeći PHPMailer

od strane | Hosting sajta

PHPMailer za slanje mailova

Postoji mnogo PHP library-a, a PHPMailer je jedna od najćešći izbora mnogih korisnika. Pokrenuta je 2000. godine i od tada je dovoljno puta udomljena od strane programera upravo za slanje mejlova u PHP-u. Ovaj članak sprovešće vas kroz drugačiji pristup slanju mejlova koji se razlikuje od klasične mail() funkcije.

Generalno govoreći, PHPMailer je alternativa mail() funkciji koja je najčešća, međutim postoji više scenarija kada mail() fukcionalnost nije dovoljno fleksibilna.

7 razloga zbog kojih treba koristiti PHPMailer pre nego mail() funkciju

Postoji nekoliko prednosti zbog kojih je PHPMailer praktičniji:

  • Object Oriented – Za Mail() funkciju se ne može reći da je object oriented, dok PHPMailer poseduje interfejs koji upravo to jeste.
  • Zaglavlja i izbegavanje prljavog koda – U PHPMailer-u nema potrebe za stvaranjem prljavog koda. Nije potrebno kreirati zaglavlja na način na koji se to radi u mail() fukciji.
  • Ograničenja local mail servera – Mail() funkcija obično potražuje local mail server za slanje e-mailova dok PHPMailer koristi SMTP.
  • Greška pri slanju na više jezika – Ovaj library omogućava slanje error poruka na više od 40 jezika kada slanje poruke zakaže.
  • SSL Autentifikacija – PHPMailer podržava SMTP protokol i autentifikaciju preko SSL i TLS.
  • Plain tekst verzija e-maila – Podržano je slanje plain teksta u e-mailovima za ne-HTML email klijente.
  • Podrška zajednice – Iza PHPMailer-a stoji aktivna zajednica korisnika i programera koji ga čine ažurnim.

Aplikacije

Popularni CMS sistemi koriste PHPmailer library i među njima su Joomla, Drupal i WordPress.

Slanje emailova koristeći PHPMailer sa lokalnog servera

E-mailovi se mogu slati sa lokalnog servera koristeći sledeći kod:

<?php require_once "vendor/autoload.php"; //PHPMailer Object 
$mail = new PHPMailer;  
$mail->From = "from@yourdomain.com"; // Adresa mora postojati u cPanelu
$mail->FromName = "Vase ime"; // Ime i prezime pošiljaoca
$mail->addAddress("recepient1@example.com", "Ime primaoca"); 
$mail->addReplyTo("reply@yourdomain.com", "Reply"); //Adresa za odgovor
$mail->addCC("cc@example.com"); //CC i BCC polja
$mail->addBCC("bcc@example.com"); 
$mail->isHTML(true); //HTML ili tekstualni mail 
$mail->Subject = "Tekst naslova"; 
$mail->Body = "<i>Ovo je mail u HTML-u</i>";
$mail->AltBody = "Ovo je tekstualni mail"; 
if(!$mail->send()) 
{
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else { echo "Mail je uspešno poslat"; 
}
if(!$mail->send()) 
{ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else 
{ 
echo "Mail je uspešno poslat"; 
}

Slanje e-mailova sa prilogom

Koristeći PHPMailer mogu se slati i e-mailovi sa prilogom uz pomoć sledećeg koda:

<?php
require_once "vendor/autoload.php";
$mail = new PHPMailer;
$mail->From = "from@vasdomen.com";
$mail->FromName = "Vaše ime";
$mail->addAddress("recipient1@example.com", "Recipient Name"); 
//Provide file path and name of the attachments
$mail->addAttachment("file.txt", "File.txt");
$mail->addAttachment("images/profile.png"); //Filename is optional
$mail->isHTML(true);
$mail->Subject = "Tekst naslova";
$mail->Body = "<i>Mail u HTMLu</i>";
$mail->AltBody = "Tekstualni mail";
if(!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Mail je uspešno poslat";
}

File.txt i images/profile.png su prikačeni kao prilozi. Treba da se nalaze se u istom direktorijumu. Prilozi se mogu dodavati pozivanjem addAttachemnt što je u osnovi objekat u PHPMailer-u. Neophodno je pozivati ovaj objekat svaki put kada se dodaje prilog.

Slanje e-mailova koristeći SMTP

Pošta se može slati i korišćenjem SMTP-a ali to zahteva autentifikaciju da bi e-mailovi bili poslati sa drugog hosta. U pitanju je isti proces kao kada napravite nalog na Gmailu i šaljete poštu preko tog servisa. SMTP je u osnovi protokol koji šalje zahtev za e-mailom na mail server i nakon verifikacije šalje tu poštu dalje na udaljeni server.

Možete iskoristiti sledeći primer za slanje e-maila koristeći SMTP protokol Gmail servera:

<?php

require_once "vendor/autoload.php";

$mail = new PHPMailer;

//Enable SMTP debugging.

$mail->SMTPDebug = 3;

//Set PHPMailer to use SMTP.

$mail->isSMTP();

//Set SMTP host name

$mail->Host = "smtp.gmail.com";

//bitno je da podešavanje ispod ostavite na true

$mail->SMTPAuth = true;

//Provide username and password

$mail->Username = "name@gmail.com";

$mail->Password = "super_secret_password";

//If SMTP requires TLS encryption then set it

$mail->SMTPSecure = "tls";

//Set TCP port to connect to

$mail->Port = 587;

$mail->From = "name@gmail.com";

$mail->FromName = "Full Name";

$mail->addAddress("name@example.com", "Recepient Name");

$mail->isHTML(true);

$mail->Subject = "Subject Text";

$mail->Body = "<i>Mail body in HTML</i>";

$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send())

{

echo "Mailer Error: " . $mail->ErrorInfo;

}

else

{

echo "Mail je uspešno poslat";

}

Pre slanja e-mailovo preko SMTP-a, hostname, broj porta i enkripcija su neophodni. Takođe je potrebno koristiti kosničko ime i lozinku za autentifikaciju. Bitno je napomenuti da ukoliko se na Gmailu koristi dvostruka autentifikacija, poštu nije moguće slati.

Prednost korišćenja SMTP-a

Najveća prednost korišćenja udaljenog SMTP-a u PHPMailer-u je ta što ukoliko je podešen na neko drugo ime domena, koje nije local domain, biće označen kao SPAM na primaočevom serveru. Evo scenarija: pretpostavimo da je vaš domen abv.rs, međutim vi navedete sebe kao vaše-ime@gmail.com i pošaljete na adresu imeprimaoca@yahoo.com, tada će Yahoo server tu poruku označiti kao SPAM.

Preuzimanje e-mailova kroz POP3

PHPMailer podržava POP-before-SMTP verifikaciju za slanje e-mailova. Omogućava slanje pošte koristeći SMTP i autentifikaciju kroz POP. Međutim, može se primati pošta sa mail servera koristeći POP3.

Error poruke u PHPMailer-u

$mail ->ErrorInfo se koristi za povratne poruke na više od 40 jezika. Da bi se videle Error poruke na bilo kom jeziku potrebno je kopirati jezički direktorijum iz PHPMailer-ovog izvornog koda u direktorijum projekta.

Evo kako izgleda kada je PHPMailer objekat podešen na ruski jezik:

$mail->setLanguage("ru");

PHPMailer je pouzdano e-mail rešenje

U ovom tekstu je ukratko pokriven alternativni pristup slanju e-mailova kroz PHP. Ako ste PHP programer ne možete pobeći od toga da šaljete mejlove programiranjem. Možete uzeti u obzir i neke druge servise za ovu svrhu, pa razmotrite i alternative PHPMailer-u kao što su Zend mail ili swiftmailer.

 

PRIJAVITE SE ODMAH ZA NAJNOVIJE TEKSTOVE SA NAŠEG BLOGA!

Oznake (tagovi): Mail,php,PHPMailer

3 Komentari

  1. Ivan Petrović

    Moguće je slati poruke sa Gmail naloga koji ima uključenu autentifikaciju samo za takve prilike mora da se generiše posebna lozinka za tu aplikaciju (Moj nalog -> Prijavljivanje i bezbednost -> Lozinke za aplikacije)

    Odgovori
  2. Rasa Markovic

    Koliko bi ukupno kštalo da postavim sajt kod Vas? Da li je to Hosting (cenu koju odaberem od ponuđenih) + Domen? Da li imam popusta ako objavim više sajtova kod vas? Hvala. Pozdrav

    Odgovori
    • Ivan Blagojević

      Poštovani, hosting i domen su odvojene usluge.

      Hosting paket možete odabrati ovde: https://adriahost.rs/hosting/ i cena osnovnog paketa sa PDV-om na današnji dan iznosi 3.608 RSD.

      Domen možete odabrati ovde: https://adriahost.rs/domeni/ , cena .com domena na današnji dan iznosi 1,588 RSD sa PDV-om. Cene drugih domena možete videti na stranici koju smo naveli napred.

      Popust dobijate ukoliko se odlučite za period plaćanja za 3 godine unapred, pri čemu plaćate samo dve – jednu godinu dobijate besplatno pri čemu štedite 3.608 RSD (ukoliko je u pitanju Basic paket).

      Za sva dodatna pitanja slobodno nam pišete koristeći našu kontakt formu: https://adriahost.rs/contact/

      Odgovori

Leave a Reply to Ivan BlagojevićCancel reply

Kategorije

Adriahost razglednica

Ćirilica na internetu

cPanel za početnike

Hosting sajta (50)

Interesantno

Internet zarada

Iskustva Adriahost

Izrada sajta

Obaveštenje

Photoshop uputstva

SEO i Marketing sajta

Serveri i VPS

Škrabalica

SMS Marketing

Svet domena

WordPress za početnike

Besplatan email kurs i novosti sa bloga

Prijavite se na našu email listu
Ime i prezime *
Email adresa *
Dobijaćete obaveštenje o novostima na blogu i kurs web poslovanja i marketinga u 9 lekcija.

Pratite Adriahost:

Najpopularniji tekstovi

Pridružite se našem jatu