Levélküldés Mail függvénnyel
Levelet többféleképpen küldhetsz PHP segítségével. A legegyszerűbb a PHP beépített mail függvényét használni erre:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $to = 'user@example.com'; // Címzett $subject = 'Teszt mail'; // A levél tárgya $message = 'Mail függvény teszt email.'; // A levél törzse // Fejléc adatok $headers = 'From: webmaster@testdomain.hu' . "rn" . 'Reply-To: webmaster@testdomain.hu'. "rn" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> |
Ennek a módszernek az a hátránya, hogy az elküldött email fejlécében a „Return-path” és „Envelope-from” mezőiben a tárhelyed alapértelmezett emailcíme szerepel:
[username]@cpanel[x].tarhelypark.hu
A username helyére a cpanel felhasználó neved kerül, az X helyére pedig a annak szervernek a sorszáma, amelyiken a tárhelyed található. Emiatt a küldött leveleket a fogadó oldalon spamnek jelölheti a spamszűrő.
Jó tudni!
A hírlevél küldése a szerverünk használatával tiltott, tehát a függvényt erre a célra ne használd!
Levélküldés PHPMailer használatával
A PHPMailer használatával sokkal több opciód van a levélküldésre. Mivel a levélküldéshez a szervereinken autentikáció szükséges, először létre kell hoznod azt az email címet, aminek a nevében küldeni szeretnéd a levelet.
Ezután töltsd le a PHPMailert innen: class.phpmailer.php, és másold a fájlt a tárhelyedre.
A levélküldéshez ezt a kódot tudod használni:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php require 'class.phpmailer.php'; $mail = new PHPMailer; $mail->isSendmail(); // Mail küldés Sendmail használatával $mail->SMTPAuth = true; // SMTP autentikáció $mail->Username = 'webmaster@testdomain.hu'; // SMTP felhasználónév $mail->Password = 'password'; // SMTP jelszó $mail->setFrom('webmaster@testdomain.hu', 'Webmaster'); // Küldő cím $mail->addAddress('user@example.com', 'User'); // Címzett $mail->Subject = 'PHPMailer teszt'; // A levél tárgya $mail->Body = 'Teszt'; // A levél törzse if(!$mail->send()) { echo 'A levél nem küldhető el.'; echo 'PHPMailer hiba: ' . $mail->ErrorInfo; } else { echo 'A levél elküldve.'; } |
A PHPMailer megtalálható a GitHubon ahol további beállítási opciót is találsz.