Poruka je poslata iz aplikacije, ali nije stigla
Obrazac prikaže „Uspešno poslato”, a poruke nema u sandučetu. To može značiti da je aplikacija predala poruku sledećem servisu, ali ne i da ju je primalac dobio. Zato slanje iz PHP-a treba podesiti i proveriti u nekoliko koraka.

PHPMailer je biblioteka za sastavljanje i slanje poruka. Podržava autentifikovan SMTP, MIME sadržaj i priloge. Ne zamenjuje servis pošte i ne garantuje prolazak kroz sve filtere. Njegov posao je da aplikacija pravilno pripremi poruku i komunicira sa podržanim serverom.
Pripremite nalog i podatke za vezu
Pre koda proverite kreiranje mejl naloga i stvarne SMTP podatke pružaoca usluge. Potrebni su host, port, način šifrovanja i nalog ovlašćen da šalje sa izabrane adrese. Podatke preuzmite iz dokumentacije svog naloga, ne iz slučajnog primera.
Ne pretpostavljajte da su SFTP, webmail i SMTP lozinke iste. Ako servis podržava namensku aplikacionu lozinku ili drugi prikladan pristup, pratite njegov postupak. Ograničenja slanja i način autentifikacije zavise od usluge.
Instalirajte biblioteku iz pouzdanog izvora
Zvanični projekat preporučuje Composer. U odgovarajućem projektu koristite composer require phpmailer/phpmailer, uz proveru kompatibilnosti izdanja sa svojim PHP okruženjem. Sačuvajte zavisnosti i zaključanu konfiguraciju prema načinu na koji održavate aplikaciju.
Primer ispod pokazuje strukturu veze, ne vrednosti koje treba prekopirati za svaki server. Pretpostavlja STARTTLS na portu koji vaš servis izričito podržava. Za drugi podržani režim koristite odgovarajuća podešavanja iz njegove dokumentacije.
use PHPMailer\PHPMailer\PHPMailer;
require __DIR__ . '/vendor/autoload.php';
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = getenv('APP_SMTP_HOST');
$mail->SMTPAuth = true;
$mail->Username = getenv('APP_SMTP_USER');
$mail->Password = getenv('APP_SMTP_PASSWORD');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = (int) getenv('APP_SMTP_PORT');
$mail->CharSet = 'UTF-8';Tajne učitajte iz privatne konfiguracije ili odgovarajućeg okruženja. Nemojte ih unositi u javni repozitorijum, primer članka ili JavaScript koji pregledač preuzima. Pre slanja proverite da su obavezne vrednosti postavljene i da je konfiguracija odgovarajuća.
Pošiljalac i korisnik obrasca nisu ista stvar
Polje From postavite na adresu koju aplikacija sme da koristi. Ako posetilac ostavlja svoju adresu u obrascu, validirajte je i po potrebi koristite Reply-To. Nemojte omogućiti da proizvoljan unos postane zaglavlje poruke ili da aplikacija neograničeno šalje na unete adrese.
Za telo izaberite odgovarajući format. Ako šaljete HTML, obezbedite i smislen tekstualni sadržaj. Priloge dodajte samo sa proverene, dozvoljene lokacije, uz ograničenje veličine i tipa. Unos korisnika ne treba direktno pretvarati u putanju fajla na serveru.
Greške istražujte privatno
Slanje obavite kroz obradu izuzetaka i korisniku vratite kratku, razumljivu poruku. Detaljan SMTP razgovor može pomoći tokom kontrolisane dijagnostike, ali ne treba da bude javno prikazan. Log može sadržati adrese i druge osetljive podatke; ograničite mu pristup i vreme čuvanja.
Ne isključujte TLS proveru sertifikata da biste uklonili upozorenje. Proverite naziv servera, vreme na sistemu i podržani režim veze. Problem sa sertifikatom treba objasniti, a ne samo sakriti.
Sačuvajte smislen status u aplikaciji
Razdvojite neuspeh povezivanja, odbijenu poruku i prihvatanje od servera. Korisniku ne obećavajte konačnu isporuku kada imate samo potvrdu predaje. Ako aplikacija ponavlja slanje posle greške, proverite da ne pravi duplikate kada je ishod prvog pokušaja neizvestan. Za važna obaveštenja čuvajte odgovarajući identifikator i status uz ograničen pristup, umesto kompletnog sadržaja privatne poruke u javnom logu.
Proverite ceo put poruke
Pošaljite kontrolisani test na nalog kome imate pristup. Potvrdite prijem, proverite neželjenu poštu i odgovorite. Pregledajte serverov odgovor i eventualnu naknadnu poruku o neuspehu. Prihvatanje od SMTP servera nije isto što i potvrđen prijem u glavnom sandučetu.
Proverite i SPF, DKIM i DMARC prema uputstvu servisa. PHPMailer ne postavlja sve te DNS uslove automatski. Za newsletter i veći obim slanja izaberite odgovarajući sistem, umesto da običan kontakt obrazac pretvorite u masovni pošiljalac.
PHPMailer nije POP3 čitač sandučeta. Odvojite slanje od preuzimanja pošte i birajte biblioteku prema zadatku. Najkorisniji završni test je jedan pravilno sastavljen mejl koji je stvarno primljen i na koji može normalno da se odgovori.
Jednom nedeljno šaljemо nove tekstove koje vredi pročitati!




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)
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
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/
Poštovani!
Gdje mogu i da li mogu skinuti kompletan kod tutoriala.
Hvala unaprijed
Poštovani, u našem tekstu se nalazi kompletan kod. Ako zatreba još nešto ili se ne snađete javite nam pa ćemo pomoći.