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;
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: |
SMTP_FROM | A küldő email címe |
SMTP_NAME | A küldő neve |