Kako u PHP-u s funkcijom mail() dobiti ispravnog pošiljatelja? SMTP
Ako koristite PHP funkciju mail(), kao pošiljatelja dobivate nazivracuna@vasadomena.xx. To se ne može promijeniti i uzrokovat će pogreške ili će dovesti do toga da se poruka smatra spamom.
Najbolje je koristiti SMTP. Na internetu postoji mnogo besplatnih PHP klasa za to. Pošta se tada šalje putem SMTP-a, a pošiljatelja je lako odrediti.
Često korištena opcija je PHPMailer
Osim toga, s PEAR Mail možete slati poštu izravno putem SMTP-a. To je osobito korisno kod obrazaca ili skripti izrađenih po mjeri.
https://pear.php.net/package/Mail
https://pear.php.net/package/Net_SMTP
https://pear.php.net/package/Auth_SASL
Primjer: slanje pošte putem SMTP-a s PEAR-om
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
// Učitavanje PEAR Mail
require_once 'Mail.php';
// SMTP postavke
$smtp_host = 'ssl://mail.server.tld';
$smtp_port = 465;
$smtp_user = 'user@domein.nl';
$smtp_pass = 'lozinka';
// Podaci poruke
$to = 'primatelj@domein.nl';
$from = 'user@domein.nl';
$subject = 'Probna poruka';
$body = 'Ovo je probna poruka poslana putem SMTP-a.';
$reply = 'user@domein.nl';
// Zaglavlja
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject,
'Reply-To' => $reply
);
// SMTP objekt
$smtp = Mail::factory('smtp', array(
'host' => $smtp_host,
'port' => $smtp_port,
'auth' => true,
'username' => $smtp_user,
'password' => $smtp_pass
));
// Slanje poruke
$result = $smtp->send($to, $headers, $body);
if (PEAR::isError($result)):
echo $result->getMessage();
else:
echo 'Poruka je uspješno poslana';
endif;
