Kuidas saada PHP funktsiooniga mail() õige saatja? SMTP
Kui kasutad PHP funktsiooni mail(), on saatjaks kontonimi@uwdomein.xx. Seda ei saa muuta ja see põhjustab vigu või selle, et kirja peetakse rämpspostiks.
Kõige parem on kasutada SMTP-d. Internetist leiab selleks palju tasuta PHP klasse. Siis saadetakse kiri SMTP kaudu ja saatjat saab lihtsalt määrata.
Üks sageli kasutatav võimalus on PHPMailer
Lisaks saab PEAR Mail abil saata kirju otse SMTP kaudu. See on eriti kasulik vormide või eritellimusel tehtud skriptide puhul.
https://pear.php.net/package/Mail
https://pear.php.net/package/Net_SMTP
https://pear.php.net/package/Auth_SASL
Näide: SMTP-kirja saatmine PEAR-iga
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
// PEAR Maili laadimine
require_once 'Mail.php';
// SMTP seaded
$smtp_host = 'ssl://mail.server.tld';
$smtp_port = 465;
$smtp_user = 'user@domein.nl';
$smtp_pass = 'parool';
// E-kirja andmed
$to = 'saaja@domein.nl';
$from = 'user@domein.nl';
$subject = 'Testkiri';
$body = 'See on SMTP kaudu saadetud testkiri.';
$reply = 'user@domein.nl';
// Päised
$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
));
// Kirja saatmine
$result = $smtp->send($to, $headers, $body);
if (PEAR::isError($result)):
echo $result->getMessage();
else:
echo 'E-kiri saadeti edukalt';
endif;
