WordPress levélküldési problémák megoldása SMTP-vel
A WordPress alapesetben a php mail() függvényt használja levélküldésre. A mail() függvényt azonban biztonsági okokból a legtöbb tárhelyszolgáltató letiltja. A WordPress-ben sokkal jobb alternatíva az e-mailek küldésére az SMTP, és nagyon egyszerű beállítani. Megmutatjuk hogyan kell ezt elvégezni, bővítményekkel és anélkül.
Mi az SMTP?
Az SMTP vagy Simple Mail Transfer Protocol határozza meg az e-mailek továbbításának szabályait. Lehetővé teszi az e-mailek cseréjét különböző típusú számítógépek, szerverek és hálózatok között. Az SMTP-szerver egy olyan alkalmazás, amely az SMTP protokoll szerint működik, és e-maileket küld a feladótól a címzettnek. A folyamat leegyszerűsítése érdekében az SMTP-kiszolgáló fogadja az e-maileket az e-mail klienstől (Gmail, Outlook stb.), és szükség esetén továbbítja azokat más SMTP-kiszolgálókra. Ezek után az e-maileket a címzett SMTP-kiszolgálója veszi fel, és a bejövő levelezőszerverek (POP3 vagy IMAP) segítségével kézbesíti.
Miért SMTP-t használjunk e-mailek küldésére a WordPress-ben?
Ahogy az elején említettük, a WordPress a PHP mail() függvényét használja az e-mailek küldésére, ez a módszer azonban több okból is problémás:
Leginkább egyszerű, sima szöveges e-mailekhez alkalmas. A HTML-képességek meglehetősen korlátozottak, és nem adhat hozzá mellékleteket vagy nem ágyazhat be képeket.
A PHP mail() nem rendelkezik megfelelő e-mail fejlécekkel. Ennek eredményeként az internetszolgáltatók az ezzel a módszerrel küldött e-maileket spamként jelölik meg, vagy teljesen elutasítják azokat. Tehát, ha például egy webshopban automatikusan e-mailben küldi el a PHP mail() használatával a megrendelés visszaigazolásokat, akkor valószínűleg azok a spam mappába kerülnek.
Nem teszi lehetővé az e-mailek küldését külső szervereken keresztül. Még ha konfigurálja is az SMTP beállításokat, az csak localhost vagy hasonló megoldás esetén lesz használható. A PHP mail() nem támogatja az SMTP hitelesítést.
Nézzük meg, hogyan lehet e-maileket küldeni a WordPress-ben SMTP-szerverrel:
Beállíthatja az SMTP-t a WordPress-ben bővítmények nélkül, egy kis kódolással a PHPMailerrel. Ez egy könyvtár, amelyet a PHP számára hoztak létre, hogy kiküszöbölje a mail() függvény hiányosságait. A PHPMailer támogatja az összetett e-mail törzseket (beleértve a HTML-t és a beágyazott képeket) és a mellékleteket. Lehetővé teszi e-mailek küldését bármely SMTP-kiszolgálóval.
A PHPMailer működéséhez szükségünk van egy működő SMTP szerverre. Az alábbi kódmintában az Ön SMTP-jét használjuk e-mailek küldésére a WordPress-ben. Mielőtt azonban elkezdenénk, hozzon létre egy e-mail címet szolgáltatójánál, amivel sikeresen tud hitelesíteni.
Most keresse meg webhelye gyökérkönyvtárát, és benne a wp-config.php fájlt. Az alábbi kódmintával konfigurálhatja a WordPress SMTP-beállításait e-mail címének hitelesítő adataival.
define( 'SMTP_username', 'your-email@domainnevem.hu' );
define( 'SMTP_password', 'your-mail-password' );
define( 'SMTP_server', 'mail.domainnevem.hu' );
define( 'SMTP_FROM', 'felado@domainnevem.hu' );
define( 'SMTP_NAME', 'Nev - cegnev' );
define( 'SMTP_PORT', '587' );
define( 'SMTP_SECURE', 'tls' );
define( 'SMTP_AUTH', true );
define( 'SMTP_DEBUG', 0 );
Adja hozzá a következő szkriptet is a functions.php fájlhoz.
add_action( 'phpmailer_init', 'my_phpmailer_smtp' );
function my_phpmailer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_server;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->Username = SMTP_username;
$phpmailer->Password = SMTP_password;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}
Mentse el a beállításokat és kész. Mostantól a WordPress az e-maileket az SMTP-kiszolgálón keresztül küldi.
Ha nem akar kódolással foglalkozni akkor SMTP bővítményt kell telepíteni hozzá:
Mi az SMTP Mailer nevűt javasoljuk, mivel használata nagyon egyszerű. Használatához szüksége lesz az SMTP adatokra, a kiszolgáló nevére, e-mail címére és az e-mail címhez tartozó jelszavára.
CP