„E-mail küldése weboldalról, PHP, Wordpress” változatai közötti eltérés
(16 közbenső módosítás ugyanattól a szerkesztőtől nincs mutatva) | |||
1. sor: | 1. sor: | ||
[[Category:Webtárhely]] | [[Category:Webtárhely|3]] | ||
== Miért szükséges SMTP szerveren keresztül, hitelesítéssel küldeni a levelet? == | == Miért szükséges SMTP szerveren keresztül, hitelesítéssel küldeni a levelet? == | ||
PHP | PHP mail() függvény nem működik. (mivel nincs lokális SMTP szerver).<br /> | ||
A PHP mail() függvényt használata 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? == | == 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 | 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. | ||
== Wordpress beállítása, Easy WP SMTP plugin == | |||
A Wordpress alapértelmezésben a PHP mail() függvényét használja, ezért telepítünk kell egy SMTP plugint. Szerencsére sok plugin áll rendelkezésünkre: Easy WP SMTP, WP Mail SMTP, Post SMTP mailer, stb.<br /> | |||
Mindegyik beállítása hasonló, a lenti példa az Easy WP SMTP plugin beállítását mutatja.<br /> | |||
[[File:wp_easysmtp1.jpg|center|700px]]<br /><br /> | |||
* SMTP host: mail2.linuxweb.hu | |||
* Encryption (titkosítás): SSL/TLS 465 port vagy SARTTLS 587 port | |||
[[File:wp_easysmtp2.jpg|center|700px]]<br /><br /> | |||
* SMTP Authentication: Yes | |||
* SMTP Username: saját e-mail cím (hozzon létre egy önálló e-mail címet, amit csak webes e-mail küldésre használ, pl. noreply@sajatdomain.hu) | |||
* SMTP Password: az e-mail cím jelszava | |||
[[File:wp_easysmtp3.jpg|center|700px]]<br /><br /> | |||
* A "Test mail" fülön ellenőrizheti a beállítások helyességet. Tetszőleges e-mail címre küldhet levelet a plugin-nal. | |||
[[File:wp_easysmtp4.jpg|center|700px]]<br /><br /> | |||
== Szükséges-e saját SMTP eljárásokat írni PHP-ban? == | == Szükséges-e saját SMTP eljárásokat írni PHP-ban? == | ||
Ha saját PHP kódunk van, akkor sem kell SMTP eljárásokat magunknak írni. Az Interneten sok-sok ingyenesen letölthető PHP kód található.<br /> | |||
Ezek közül a PHPMailer-t javasoljuk: https://github.com/Synchro/PHPMailer | Ezek közül a PHPMailer-t javasoljuk: https://github.com/Synchro/PHPMailer | ||
== PHP példaprogram == | == PHP példaprogram == | ||
<pre class="prettyprint" style="width:70%"> | |||
<?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."; | |||
?> | |||
</pre> |
A lap jelenlegi, 2021. április 16., 17:36-kori változata
Miért szükséges SMTP szerveren keresztül, hitelesítéssel küldeni a levelet?
PHP mail() függvény nem működik. (mivel nincs lokális SMTP szerver).
A PHP mail() függvényt használata 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.
Wordpress beállítása, Easy WP SMTP plugin
A Wordpress alapértelmezésben a PHP mail() függvényét használja, ezért telepítünk kell egy SMTP plugint. Szerencsére sok plugin áll rendelkezésünkre: Easy WP SMTP, WP Mail SMTP, Post SMTP mailer, stb.
Mindegyik beállítása hasonló, a lenti példa az Easy WP SMTP plugin beállítását mutatja.
- SMTP host: mail2.linuxweb.hu
- Encryption (titkosítás): SSL/TLS 465 port vagy SARTTLS 587 port
- SMTP Authentication: Yes
- SMTP Username: saját e-mail cím (hozzon létre egy önálló e-mail címet, amit csak webes e-mail küldésre használ, pl. noreply@sajatdomain.hu)
- SMTP Password: az e-mail cím jelszava
- A "Test mail" fülön ellenőrizheti a beállítások helyességet. Tetszőleges e-mail címre küldhet levelet a plugin-nal.
Szükséges-e saját SMTP eljárásokat írni PHP-ban?
Ha saját PHP kódunk van, akkor sem kell SMTP eljárásokat magunknak írni. 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."; ?>