E-mail küldése weboldalról, PHP, Wordpress
Ugrás a navigációhoz
Ugrás a kereséshez
Miért szükséges SMTP szerveren keresztül, hitelesítéssel küldeni a levelet?
PHP programból az e-mail küldés alapértelmezés szerint a mail() függvény meghívásával történik. A mail() függvényt használva bárki küldhet e-mailt, a rendszer ezt minden ellenőrzés nélkül továbbítja. Ez a módszer nem nyújt kellő biztonságot a levélhamisítások, támadások ellen, ezért bevezettük az SMTP szerver kötelező használatát.
Mit jelent az SMTP hitelesítés?
Az SMTP szerver csak akkor küldi tovább levelünket, ha érvényes e-mail címmel és jelszóval rendelkezünk. Ezzel a módszerrel az SMTP szerveren ellenőrizhető a feladó címe, a kiküldött e-mailek száma, stb.
Szükséges-e saját SMTP eljárásokat írni PHP-ban?
Nem. Az Interneten sok-sok ingyenesen letölthető PHP kód található.
Ezek közül a PHPMailer-t javasoljuk: https://github.com/Synchro/PHPMailer
PHP példaprogram
<?php require("class.phpmailer.php"); $mail = new PHPMailer(); /**** SMTP szerver használata ****/ $mail->IsSMTP(); /**** SMTP szerver domain neve vagy IP címe ****/ $mail->Host = "mail2.linuxweb.hu"; /**** Hitelesítés bekapcsolása, KÖTELEZŐ (SMTP authentication) ****/ $mail->SMTPAuth = true; /**** E-mail cím ****/ $mail->Username = "gipsz.jakab@linuxweb.hu"; /**** Jelszó ****/ $mail->Password = "titok"; /**** Feladó e-mail címe ****/ /**** FONTOS!!! ÉRVÉNYES, SZERVEREN LÉTEZŐ E-MAIL LEGYEN! ****/ /**** FELADÓ HAMISÍTÁSA NEM LEHETSÉGES ****/ $mail->From = "gipsz.jakab@linuxweb.hu"; /**** Feladó neve ****/ $mail->FromName = "Gipsz Jakab"; /**** Címzett e-mail címe, neve ****/ $mail->AddAddress("idemenjen@cegnev.hu", "Vezér Imre"); //$mail->AddAddress("cim@cegnev.hu"); // címzett e-mail címe, név nem kötelező //$mail->AddReplyTo("webmaster@linuxweb.hu", "Webmaster"); $mail->WordWrap = 50; // sortörés 50 karakter $mail->IsHTML(true); // HTML formátum beállítása $mail->Subject = "Teszt levél"; $mail->Body = "Teszt e-mail küldése SMTP hitelesítéssel!"; if(!$mail->Send()) { echo "Nem sikerült az e-mail küldése. <p>"; echo "Hiba: " . $mail->ErrorInfo; exit; } else echo "Levél sikeresen elküldve."; ?>