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

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:

Sada kada smo i to raspakovali onda je potrebno da uradimo našu stranu.
Naš primer ima sledeća polja:
<form action="kontaktforma.php" method="post">
Ime:<br>
<input type="text" id="fname" name="firstname" placeholder="Your name.."><br>
Prezime:<br>
<input type="text" id="lname" name="lastname" placeholder="Your last name.."><br>
Email:<br>
<input type="text" id="email" name="email"><br>
Text:<br>
<textarea id="tekst" name="tekst" placeholder="Write something.." style="height:200px"></textarea><br>
<input type="submit" value="Pošalji"><br>
</form>
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 <form> 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 <input name=’email’….> 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 <input name=’naslov’…> 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
<?php
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';
if(isset($_POST['email']))
{
$mail = new PHPMailer;
$mail->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!';
}
}
?>
<div class="container">
<form action="kontaktforma.php" method="post">
Ime:<br>
<input type="text" id="fname" name="firstname" placeholder="Your name.."><br>
Prezime:<br>
<input type="text" id="lname" name="lastname" placeholder="Your last name.."><br>
Email:<br>
<input type="text" id="email" name="email"><br>
Text:<br>
<textarea id="tekst" name="tekst" placeholder="Write something.." style="height:200px"></textarea><br>
<input type="submit" value="Pošalji"><br>
</form>
</div>
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