Ovde odradićemo dva scenarija. Prvi je onaj lakši a to je putem WordPress-a.
Kada je u pitanju wordpress postoji plugin za to i tu se nećemo previše baviti. Plugin je Contact Form 7.   Nakon instalcije i podešavanja morate da postaite u svom wordpressu SMTP konekciju kako bi vaši emailovi stizali bez problema. A to možete da uradite pomoću našeg drugog članka SMTP i WordPress.

Onaj drugi deo koji je „teži“ jeste za HTML sajtove ili one koji imaju kontakt stranu koja je ručno urađena i ne koriste ni jedan CMS.

Pre svega potrebno je da skinete PHPMailer klikom na „Clone or downlaod“ a zatim na „Download ZIP“.

Kao na slici ispod

phpmailer Kako da kreirate kontakt formu

Nakon ovoga je potrebno da taj zip fajl postavite na svoj hosting nalog.

cPanel > File Manager > otvorite public_html folder i unutar njega opcija „upload“.

Kada ste završili upload onda desni klik na zip fajl i extract kao na slici:

phpmailer2 Kako da kreirate kontakt formu

Sada kada smo i to raspakovali onda je potrebno da uradimo našu stranu.
Naš primer ima sledeća polja:

Ime:

Prezime:

Email:

Text:


Vaša kontakt forma svakako izgleda drugačije i ima drugačije nazive input elemanata i više ili manje polja, stim nemojte bukvalno da copy/paste već mini podešavanja koja su vezana za vašu kontakt formu.

Ključna stvar ovde jeste opcija u

a to je „action=“kontaktforma.php“ a to znaci da kada se klikne na „Pošalji“ time se šalje sadržaj polja na tu php stranu u našem slučaju kontaktforma.php (može biti ista strana a može biti i eksterna).

Sada ide podešavanj SMTP i PHPmailera za podatke koje smo poslali pomoću HTML kontakt forme.

PHPMailer izgleda ovako:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer-master/src/Exception.php';
require 'PHPMailer-master/src/PHPMailer.php';
require 'PHPMailer-master/src/SMTP.php';
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPDebug = 0;
    $mail->Host = 'mail.vasdomen.tld';
    $mail->Port = 25;
    $mail->SMTPAuth = true;
    $mail->Username = '[email protected]'; //<- unosite vašu email adresu
    $mail->Password = 'mojalozinka'; //<- unosite lozinku od te email adrese
    $mail->setFrom($_POST['email'], 'First Last'); //<- od koga je email 1*
    $mail->addReplyTo($_POST['email'], 'First Last'); //<- od koga je email 2*
    $mail->addAddress('[email protected]', 'John Doe'); //<- od koga je email 3*
    $mail->Subject = 'Kontakt sa sajta'; //<- od koga je email 4*

    $mail->AltBody = $_POST['tekst']; //<- od koga je email 5*
    $mail->Body    = $_POST['tekst']; //<- od koga je email 6*
    $mail->IsHTML(true);
    if (!$mail->send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }

Sada malo pojašnjenje u vezi ovog koda:
1* – $_POST[’email’] je email adresa koju je vaš posetilac uneo iz kontakt forme ovo [’email’] je u stvari zavisno od vase kontakt forme kako ste nazvali taj input unos.
2* – U ovom redu kada vi kliknete na replay u svom email klijentu ko dobija odgovor uvek je isto kao i onaj ko je poslao kao u našem primeru.
3* – U ovom redu unosite vašu email adresu odnosno ko prima email iz kontakt forme
4* – Naslov ovde može i da stoji $_POST[naslov’] odnosno HTML zavisno od vase kontakt forme. Mi u nasem primeru nismo imali polje za naslov.
5* – U ovom redu je tekst bez html-a već čist samo tekst.
6* – Ovde je moguće da se i HTML ubaci u sam body emaila jer je označeno odmah u sledećem redu da je email HTML (šta pod ovim podrazumevam wordpress članak može slikovito da vam pokaze OVDE)

Nakon ovoga je ostalo samo da izmenite tekst „Message sent!“ i error u vaše šta vi želite da pišete i to je sve.

Ispod možete da vidite kako smo mi i HTML formu i PHP stavili u jednom fajlu koji se zove kontaktforma.php

isSMTP();
    $mail->SMTPDebug = 0;
    $mail->Host = 'mail.vasdomen.tld';
    $mail->Port = 25;
    $mail->SMTPAuth = true;
    $mail->Username = '[email protected]';
    $mail->Password = 'mojalozinka';
    $mail->setFrom($_POST['email'], $_POST['firstname']." ".$_POST['lastname']);
    $mail->addReplyTo($_POST['email'], $_POST['firstname']." ".$_POST['lastname']);
    $mail->addAddress('[email protected]', 'Marko Markovic');
    $mail->Subject = 'Kontakt sa sajta';

    $mail->AltBody = $_POST['tekst'];
    $mail->Body    = $_POST['tekst'];
    $mail->IsHTML(true);
    if (!$mail->send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }
}
?>
Ime:

Prezime:

Email:

Text:


Mala napomena, ukoliko nakon postavljanja forme vam stiže veći broj spam mailova na vašu adresu potrebno je da postavite i https://www.google.com/recaptcha/intro/v3.html

Scroll to Top