„E-mail küldése weboldalról, PHP, Wordpress” változatai közötti eltérés

Innen: LinuxWeb Wiki
Ugrás a navigációhoz Ugrás a kereséshez
Nincs szerkesztési összefoglaló
 
(19 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 programból e-mail küldése 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üldhetett e-mailt, a rendszer ezt minden ellenőrzés nélkül továbbítja.
PHP mail() függvény nem működik. (mivel nincs lokális SMTP szerver).<br />
Ez a módszer nem nyújt kellő biztonságot a levélhamisítások, támadások ellen, ezért volt szükséges bevezetnünk az SMTP szerver kötelező használatát.
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ést? ==
== 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ímzettek, kiküldött e-mailek száma, stb.  
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? ==


Nem. Az Interneten sok-sok ingyenesen letölthető PHP kód található.<br />
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., 16: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.

Wp easysmtp1.jpg



  • SMTP host: mail2.linuxweb.hu
  • Encryption (titkosítás): SSL/TLS 465 port vagy SARTTLS 587 port
Wp easysmtp2.jpg



  • 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
Wp easysmtp3.jpg



  • 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.
Wp easysmtp4.jpg



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.";
?>