A PHPMailer valószínűleg a világ legnépszerűbb PHP kódja a PHP-ból történő e-mail küldésre. Számos nyílt forráskódú projekt használja, mint: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! és még sokan mások. Az egyik legnagyobb előnye, hogy Integrált SMTP-támogatás biztosít, azaz a helyi levelezőszerver nélkül is küldhetsz email leveleket a PHP kódból. Bár nagy népszerűségnek örvend, de tisztában kell lennünk a kockázataival is: ha nem megfelelően konfiguráljuk a környezetet vagy nem tartjuk naprakészen a nyílt forráskódú alkalmazásunkat, hamar célponttá válhatunk és nem kívánt események során indíthatja el, mint a tömeges email küldés vagy SPAM tevékenység. Ezek a tevékenységek tárhely szolgáltatás felfüggesztését okozhatják.

PHPMailer verzió ellenőrzés és frissítése

A PHPMailer verzió ellenőrzéséhez adjuk ki az alábbi parancsot SSH-n:

find . -type f -name '*phpmailer.php'

Ha használjuk a PHPMailer alkalmazást, akkor ez a parancs kilistázza számunkra, melyik könyvtárban találjuk a forrásfájlokat. Valami ilyesmit kell majd látnunk:

  • Joomla esetén: libraries/vendor/phpmailer/phpmailer/class.phpmailer.php
  • Joomla 4.x esetén: libraries/vendor/phpmailer/phpmailer/src/PHPMailer.php
  • WordPress esetén: /wp-includes/class-phpmailer.php
  • WordPress 5.5 vagy frissebb esetén: /wp-includes/PHPMailer/PHPMailer.php

Navigáljunk a jelzett könyvtárba. Ha létezik a VERSION nevű fájl a könyvtárban, nyissuk meg, hogy ellenőrizni tudjuk, melyik alkalmazásverziót használjuk. Ez történhet Midnight Commander-ben az F3 gomb lenyomásával, vagy az alábbi parancs kiadásával:

cat VERSION

Ekkor megkapjuk a PHPMailer alkalmazás általunk használt verzióját. A PHPMailer legfrissebb verziószámát a Github-on tudjuk ellenőrizni: PHPMailer/PHPMailer

Ha úgy ítéljük meg, hogy túl régi verziót használunk, akkor töltsük le a legfrissebb forrásfájl csomagot az alkalmazáshoz, csomagoljuk ki, keressük meg benne a PHPMailer alkalmazást, majd írjuk felül a meglévőt. Figyelem! A CMS alkalmazások PHPMail verzió támogatottsága verziónként eltérő lehet! Például a WordPress 5.5 verzió fogja kizárólag támogatni a PHPMailer 6.1.6. verziótól felfele, mert megváltozott a PHPMailer forrásfájlok tárolására szolgáló könyvtár! Ezért mindig a teljes CMS frissítése javasolt az egyéni PHPMail alkalmazás frissítése helyett.

WordPress PHPMailer használata SMTP-vel

Lehetőséged van biztonságosabbá tenni a PHPMailer alkalmazásodat, ha SMTP szervert használsz a küldéshez. Mivel az email fiókokhoz beállítható küldési limit, így könnyűszerrel szabályozhatod a kikülhető levelek számát, valamint néhány mozdulattal felfüggesztheted a küldést a DirectAdmin felületen az email fiók korlázoásával.

Az SMTP beállításához add hozzá a WordPress témád functions.php fájlához az alábbi kódot:

add_action( 'phpmailer_init', 'send_smtp_email' ); function send_smtp_email( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = SMTP_HOST; $phpmailer->SMTPAuth = SMTP_AUTH; $phpmailer->Port = SMTP_PORT; $phpmailer->Username = SMTP_USER; $phpmailer->Password = SMTP_PASS; $phpmailer->SMTPSecure = SMTP_SECURE; $phpmailer->From = SMTP_FROM; $phpmailer->FromName = SMTP_NAME;
Add hozzá a WordPress wp-config.php fájlhoz az alábbi kódot az ABSPATH állandó előtt, de legjobb, ha a “That’s all, stop editing! Happy blogging.” sor felé illeszted be követlenül:
                   
define( 'SMTP_USER', 'user@example.com' ); // Username to use for SMTP authentication define( 'SMTP_PASS', 'smtp password' ); // Password to use for SMTP authentication define( 'SMTP_HOST', 'smtp.example.com' ); // The hostname of the mail server define( 'SMTP_FROM', 'website@example.com' ); // SMTP From email address define( 'SMTP_NAME', 'e.g Website Name' ); // SMTP From name define( 'SMTP_PORT', '25' ); // SMTP port number - likely to be 25, 465 or 587 define( 'SMTP_SECURE', 'tls' ); // Encryption system to use - ssl or tls define( 'SMTP_AUTH', true ); // Use SMTP authentication (true|false) define( 'SMTP_DEBUG', 0 ); // for debugging purposes only set to 1 or 2
             
Állandó Magyarázat
SMTP_HOST Az SMTP szervered címe, például smtp.fiberhost.hu
SMTP_PORT Kapcsolat típusának portja: 
– Natív: 25 (ne használd)
– STARTTLS: 587
– TLS: 465
SMTP_AUTH Használjon-e a hitelesítéshez felhasználónév / jelszó párost.
Értéke lehet:
– true
– false
SMTP_USER A küldéshez használni kívánt E-mail cím
SMTP_PASS A küldéshez használni kívánt E-mail jelszava
SMTP_SECURE

Kapcsolat típusa:
– SSL
– TLS

SMTP_FROM A küldő email címe
SMTP_NAME A küldő neve