PHPMailer’i raamatukogu kasutamine sõnumite saatmiseks SMTP kaudu

Viimati muudetud: Tuesday November 21st, 2023

See artikkel kirjeldab, kuidas saata sõnumeid SMTP kaudu, kasutades PHPMaileri raamatukogu.

Sissejuhatus

SMTP raamatukogu lisamine teie rakendusse nõuab oskusi PHP programmeerimises. Kui te pole kindel, kuidas integreerida selle õpetuse näidisstsenaariumi oma PHP rakendusse, soovitame abi saamiseks pöörduda kogenud ja koolitatud PHP arendaja poole, kes saab ülesande teie eest täita.

Kui teie rakendus vajab e-kirjade saatmist, on teil kaks peamist valikut:

  1. Kasutage PHP mail() funktsiooni
  2. Kasutage SMTP raamatukogu

PHP mail() funktsiooni kasutamise eelis seisneb selle äärmises lihtsuses ja kasutajasõbralikkuses. Siiski on paar puudust seotud mail() funktsiooni kasutamisega:

  1. Microsofti platvormidel põhinevad e-posti pakkujad kategoriseerivad PHP mail() abil genereeritud sõnumid rämpspostiks, kuna nad ei tunnusta PHP mail() genereeritud DKIM päiseid.
  2. Mail() funktsioon töötab sünkroonselt, nõudes rakenduselt pausi enne kui SMTP tehing on lõpule viidud, enne kui muid ülesandeid teostatakse.

Kui kasutate PHPMaileri sarnast SMTP raamatukogu, siis te ei puutu kokku nende samade piirangutega, kuigi see nõuab veidi rohkem konfigureerimist.

Protseduur

Selle õpetuse eesmärk on lihtsustada PHPMaileri raamatukogu seadistamist, muutes selle kiireks ja lihtsaks protsessiks.

Käsurea meetod (Soovitatav)

MÄRKUS: Palun asendage “cpanelusername” oma cPaneli kasutajanimega ja “domain.tld” oma domeeninimega.

  1. Logige sisse Terminali või SSH kaudu cPaneli kasutajana
  2. Navigeerige alamkataloogi, kuhu stsenaarium peaks eksisteerima:
    Bash:
    $ mkdir /home/cpanelusername/PHPMailerTest$ cd /home/cpanelusername/PHPMailerTest
  3. Kloonige PHPMaileri raamatukogu selle kohale git clone käsu abil:
    $ git clone https://github.com/PHPMailer/PHPMailer
    Kloonimine 'PHPMailer'...
    remote: Objektide loendamine: 37, tehtud.
    remote: Objektide lugemine: 100% (37/37), tehtud.
    remote: Objektide tihendamine: 100% (26/26), tehtud.
    remote: Kokku 6846 (delta 18), kasutatakse uuesti 25 (delta 11), pakke kasutatakse uuesti 6809
    Objektide vastuvõtmine: 100% (6846/6846), 4.79 MiB | 6.68 MiB/s, tehtud.
    Delta lahendamine: 100% (4438/4438), tehtud.
  4. Vaadake dokumentatsiooni siin: PHPMaileri dokumentatsioon GitHubis
  5. Looge stsenaarium, kopeerides selle juhendi lõpus pakutud näidisstsenaariumi järgmise faili:
    /home/cpanelusername/PHPMailerTest/testScript.php
  6. Uuendage stsenaariumi oma kohandustega.
  7. Testige stsenaariumi järgmise käsu abil:
    $ php /home/cpanelusername/PHPMailerTest/testScript.php

Failihalduri meetod

Kuigi käsurea meetod on eelistatud valik, võite selle meetodi kasutusele võtta, kui teie majutusteenuse pakkuja ei võimalda juurdepääsu SSH-le või puudub Terminali ikoon.

MÄRKUS: Selle lähenemisviisi jaoks on vajalik stsenaariumi paigutamine serveri asukohta, mis on avalikult ligipääsetav. See võib kujutada endast turvariski ja soovitatakse ainult juhul, kui faili kaitsevad meetmed, nagu Privaatsuse kausta funktsioon. Tavaliselt kasutatakse seda lähenemisviisi testimise faasis. Kui testimine on lõpule viidud, peaksite oma saatjaskripti teisaldama turvalisemasse kohta ja seejärel kutsuma selle oma PHP rakendusest esile. Kui te ei ole kindel, kuidas skripti oma PHP rakendusest esile kutsuda, soovitame abi saamiseks pöörduda PHP arendaja poole.

  1. Logige sisse oma kasutaja cPaneli kontole.
  2. Seadistage Kataloogi Privaatsust oma “public_html” kausta jaoks.
  3. Failide jaotises otsige “File Manager” ikooni.
  4. Klõpsake “public_html” kataloogil, et see avada.
  5. Laadige PHPMaileri raamatukogu alla ZIP-failina: PHPMailer GitHubis
  6. Laadige ZIP-fail üles File Manageriga, kasutades üleval horisontaalmenüü lähedal olevat “Upload” nuppu.
  7. Kasutage File Manageri horisontaalmenüüs “Extract” nuppu PHPMaileri raamatukogu väljavõtmiseks.
  8. Loo uus PHP fail nimega “test.php” kausta “public_html” sisuga allpool toodud näidisskriptist.
  9. Uuendage skripti vastavalt oma kohandustele.
  10. Testige skripti, külastades faili URL-i: https://domain.tld/test.php

Näidisskript

Tehniline tugi ei paku abi selle õpetuse skripti rakendamise, veaotsingu ega hooldamise jaoks. Kui teil tekib skriptiga vigu, vaadake kindlasti üle meie Kuidas veaotsingut teha, kui näete “SMTP Error: Could not authenticate.” lehekülg täiendava abi saamiseks.
Pakutud näidisskript on suurepärane alustamise punkt, loodud töötama tõrgeteta koos PHPMailer 6.1.2-ga. See skript kasutab nõutavaid avaldusi, et lisada kolm olulist PHP faili, mida PHPMailer vajab kõige lihtsamal viisil toimimiseks.

See skript on vaikimisi seadistatud tootma üksikasjalikku tõrke väljundit. Skript nõuab muudatusi, et töötada teie konkreetses keskkonnas. Peate järgmist värskendama:

  • Teekonna PHP failidele nõutavates avaldustes
  • $mail->Host – Kasutage oma cPanel serveri hostinime. Mõnel juhul võib kasutada ka oma domeeni nime.
  • $mail->Username – Kasutage kehtiva e-posti konto aadressi oma cPaneli serveris.
  • $mail->Password – Kasutage kehtiva e-posti konto parooli oma cPaneli serveris.
  • $mail->setFrom – Kasutage sama aadressi, mis on määratud ülaltoodud kasutajanime konfiguratsioonis.
  • $mail->addAddress – Määrake saaja aadress.
  • $mail->addReplyTo – Määrake sama aadress, mis on määratud kasutajanime konfiguratsioonis ülalpool.
  • $mail->addCC – Eemaldage see või seadke see CCsaaja aadressile.
  • $mail->addBCC – Eemaldage see või seadke see BCC saaja aadressile.
  • $mail->addAttachment – Eemaldage see või värskendage tee failini, mida lisada.
  • $mail->Subject – Värskendage see oma soovitud teemaks.
  • $mail->Body – Värskendage see oma soovitud HTML-sisuks. See ei pea olema HTML, kuid see võib sisaldada HTML-i.
  • $mail->AltBody – Värskendage see oma sisu/sõnumi lihttekstiversiooniks.
Kood:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require '/home/cpanelusername/PHPMailerTest/PHPMailer/src/Exception.php';
require '/home/cpanelusername/PHPMailerTest/PHPMailer/src/PHPMailer.php';
require '/home/cpanelusername/PHPMailerTest/PHPMailer/src/SMTP.php';

// Instantsimine ja [ICODE]true[/ICODE] üleandmine võimaldab erandeid
$mail = new PHPMailer(true);

try {
 //Serveri seaded
 $mail->SMTPDebug = 2; // Lubage üksikasjalik veateate väljund
 $mail->isSMTP(); // Määrake postikulu kasutama SMTP-d
 $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Määrake peamine ja varundus SMTP serverid
 $mail->SMTPAuth = true; // Lubage SMTP autentimine
 $mail->Username = 'user@example.com'; // SMTP kasutajanimi
 $mail->Password = 'secret'; // SMTP parool
 $mail->SMTPSecure = 'tls'; // Lubage TLS krüptimine, aktsepteeritakse ka [ICODE]ssl[/ICODE]
 $mail->Port = 587; // TCP-port, millega ühendust luua

//Saajad
 $mail->setFrom('from@example.com', 'Postitaja');
 $mail->addAddress('recipient1@example.net', 'John Doe'); // Lisa saaja
 $mail->addAddress('recipient2@example.com'); // Nimi on valikuline
 $mail->addReplyTo('info@example.com', 'Informatsioon');
 $mail->addCC('cc@example.com');
 $mail->addBCC('bcc@example.com');

// Pooled
 $mail->addAttachment('/home/cpanelusername/attachment.txt'); // Lisa manus
 $mail->addAttachment('/home/cpanelusername/image.jpg', 'new.jpg'); // Valikuline nimi

// Sisu
 $mail->isHTML(true); // Määrake e-kirja vorming HTML-iks
 $mail->Subject = 'Siin on teema';
 $mail->Body = 'See on HTML sõnumi keha <b>rasvases!</b>';
 $mail->AltBody = 'See on lihtteksti keha mittetekstilistele e-posti klientidele';

$mail->send();
 echo 'Sõnum on saadetud';

} catch (Exception $e) {
 echo "Sõnumit ei saanud saata. Postkasti viga: {$mail->ErrorInfo}";
}
Was this article helpful?
Vaatamised: 264

BeeHosting 10 Sünnipäev!
Kuni 70% allahindlus kõikidelt teenustelt
+ tasuta veebisaidi ülekanne.

Beehosting.pro veebilehel kasutatakse küpsiseid

Kasutame küpsiseid sisu ja reklaamide isikupärastamiseks, sotsiaalse meedia funktsioonide pakkumiseks ning liikluse analüüsimiseks. Edastame teavet selle kohta, kuidas meie saiti kasutate, ka oma sotsiaalse meedia, reklaami- ja analüüsipartneritele, kes võivad seda kombineerida muu teabega, mida olete neile esitanud või mida nad on kogunud teiepoolse teenuste kasutamise käigus.

Menüü