PHPMailer bibliotēkas izmantošana, lai sūtītu ziņojumus, izmantojot SMTP protokolu

Pēdējās izmaiņas: Tuesday November 21st, 2023

Šis raksts apraksta, kā nosūtīt ziņojumus ar SMTP, izmantojot PHPMailer bibliotēku.

Ievads

SMTP bibliotēkas iekļaušana jūsu lietotnē pieprasa PHP programmēšanas prasmju. Ja jums nav skaidrības, kā iekļaut piemēra skriptu, kas sniegts šajā pamācībā, savā PHP lietotnē, ieteicams meklēt palīdzību no pieredzējuša un apmācīta PHP izstrādātāja, kurš var pildīt šo uzdevumu jūsu vietā.

Kad jūsu lietotnei ir nepieciešams nosūtīt e-pasta ziņojumus, jums ir divas galvenās izvēles:

  1. Izmantojiet PHP mail() funkciju
  2. Izmantojiet SMTP bibliotēku

PHP mail() funkcijas izmantošanas priekšrocība ir tās liela vienkāršība un draudzīgums lietotājam. Tomēr ir daži trūkumi, kas saistīti ar mail() funkcijas izmantošanu:

  1. E-pasta nodrošinātāji, kas balstīti uz Microsoft platformām, kategorizē ar PHP mail() ģenerētus ziņojumus kā nevēlamu pastu, jo tie nesaprot PHP mail() ģenerētos DKIM galvenes.
  2. Mail() funkcija darbojas sinhroni, prasot lietojumprogrammai pauzēt, kamēr SMTP transakcija pabeidzas, pirms veikt citus uzdevumus.

Izmantojot SMTP bibliotēku, piemēram, PHPMailer, jūs nesaskarsit ar šādām pašām ierobežojumiem, lai gan tas prasa nedaudz vairāk konfigurācijas.

Procedūra

Šīs pamācības mērķis ir optimizēt PHPMailer bibliotēkas iestatīšanu, padarot to ātru un vienkāršu procesu.

Komandu rindas metode (Ieteicama)

PIEZĪME: Lūdzu, aizstājiet cpanelusername ar savu cPanel lietotājvārdu un domain.tld ar savu domēna vārdu.

  1. Piesakieties, izmantojot Terminalu vai SSH kā cPanel lietotājs
  2. Navigējiet uz apakškatalogu, kurā jābūt skriptam:
    Bash:
    $ mkdir /home/cpanelusername/PHPMailerTest$ cd /home/cpanelusername/PHPMailerTest
  3. Klonojiet PHPMailer bibliotēku uz vietu, izmantojot git clone komandu:
    $ git clone https://github.com/PHPMailer/PHPMailer
    Klonēšana 'PHPMailer'...
    Tālu: Objektu numerācija: 37, gatavs.
    Tālu: Objektu numerācija: 100% (37/37), gatavs.
    Tālu: Saspiešanas objekti: 100% (26/26), gatavs.
    Tālu: Kopēšanas objekti: 100% (6846/6846), 4,79 MiB | 6,68 MiB/s, gatavs.
    Datu izšķirtspēja: 100% (4438/4438), gatavs.
  4. Pārskatiet dokumentāciju šeit: PHPMailer dokumentācija GitHub
  5. Izveidojiet skriptu, nokopējot piemēra skriptu, kas vēlāk sniegts šajā ceļvedī, uz šādu failu:
    /home/cpanelusername/PHPMailerTest/testScript.php
  6. Atjauniniet skriptu ar savām pielāgojumiem.
  7. Pārbaudiet skriptu ar šādu komandu:
    $ php /home/cpanelusername/PHPMailerTest/testScript.php

Failu pārvaldības metode

Lai gan komandu rindas metode ir ieteicamā opcija, jūs varat izmantot šo metodi, ja j

ūsu mākonis nedod piekļuvi SSH vai trūkst termināļa ikonas.

PIEZĪME: Šī pieeja prasa skriptu novietot servera vietā, kas ir publiski pieejama. Tas var radīt drošības risku, un to ieteicams izmantot tikai tad, ja fails ir aizsargāts ar pasākumiem, piemēram, Privātuma direktorijas funkcija. Parasti šo pieeju izmanto testēšanas posmā. Kad tests ir pabeigts, jums vajadzētu pārvietot savu pasta sūtītāja skriptu uz drošu vietu un to izsaukt no sava PHP lietotnes. Ja jums nav skaidrības, kā izsaukt skriptu no jūsu PHP lietotnes, iesakām meklēt palīdzību no PHP izstrādātāja.

  1. Pierakstieties savā cPanel kontā.
  2. Iestatiet Direktorijas Privātumu jūsu “public_html” mapē.
  3. Sadaļā “Files” meklējiet “File Manager” ikonu.
  4. Noklikšķiniet uz “public_html” direktorijas, lai to atvērtu.
  5. Lejupielādējiet PHPMailer bibliotēku kā zip failu: PHPMailer GitHub
  6. Ielādējiet zip failu File Manager ar “Upload” pogu no horizontālā izvēlnes tuvumā augšpusē.
  7. Izmantojiet File Manager horizontālajā izvēlnē “Extract” pogu, lai izvilktu PHPMailer bibliotēku.
  8. Izveidojiet jaunu PHP failu ar nosaukumu “test.php” direktorijā “public_html” ar zemāk esošā piemēra skripta saturu.
  9. Atjauniniet skriptu ar savām pielāgojumiem.
  10. Pārbaudiet skriptu, apmeklējot faila URL: https://domain.tld/test.php

Piemēra Skripts

Tehniskā atbalsta komanda nesniegs palīdzību ar skripta implementāciju, kļūdu atkļūdošanu vai uzturēšanu šajā pamācībā. Ja jums rodas kļūdas ar jūsu skriptu, lūdzu, apskatiet mūsu Kā atkļūdot PHPMailer, ja parādās “SMTP Error: Could not authenticate.” lapu, lai saņemtu papildu palīdzību.
Piedāvātais piemēra skripts ir lielisks sākumpunkts, izstrādāts, lai nesadalīti darbotos ar PHPMailer 6.1.2. Šis skripts izmanto obligātās norādes, lai iekļautu trīs būtiskos PHP failus, kas nepieciešami, lai PHPMailer strādātu visvienkāršākajā veidā.

Šis skripts ir iestatīts, lai nokļūtu detalizētā atkļūdošanas izvadē pēc noklusējuma. Skripts prasīs pielāgošanu, lai strādātu jūsu konkrētajā vidē. Jums jāatjaunina šādi:

  • Celi uz PHP failiem obligātajos paziņojumos
  • $mail->Host – Izmantojiet savas cPanel servera resursdatora nosaukumu. Dažos gadījumos var izmantot jūsu domēna nosaukumu.
  • $mail->Username – Izmantojiet derīga e-pasta konta adresi savā cPanel serverī.
  • $mail->Password – Izmantojiet paroli derīgam e-pasta kontam savā cPanel serverī.
  • $mail->setFrom – Izmantojiet to pašu adresi, kas norādīta iepriekšējā lietotājvārda konfigurācijā.
  • $mail->addAddress – Iestatiet saņēmēja adresi.
  • $mail->addReplyTo – Iestatiet to pašu adresi, kas norādīta iepriekšējā lietotājvārda konfigurācijā.
  • $mail->addCC – Noņemiet vai iestatiet CC saņēmēja adresi.
  • $mail->addBCC – Noņemiet vai iestatiet BCC saņēmēja adresi.
  • $mail->addAttachment – Noņemiet vai atjauniniet ceļu uz pielikumu failam.
  • $mail->Subject – Atjauniniet ar vēlamo tematu.
  • $mail->Body – Atjauniniet ar vēlamu HTML saturu. Tas nekādā gadījumā nav jābūt HTML, bettas var saturēt HTML.
  • $mail->AltBody – Atjauniniet ar teksta versiju savas ziņas.
Kods:
<?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';

// Instancēšana un [ICODE]true[/ICODE] padod izņēmumu iespēju
$mail = new PHPMailer(true);

try {
 //Servera iestatījumi
 $mail->SMTPDebug = 2; // Iespējot izsmalcinātu atkļūdošanas izvadi
 $mail->isSMTP(); // Iestatīt pasta sūtītāju izmantot SMTP
 $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Norādiet galvenos un rezerves SMTP serverus
 $mail->SMTPAuth = true; // Iespējot SMTP autentifikāciju
 $mail->Username = 'moc.e1728599446lpmax1728599446e@res1728599446u1728599446'; // SMTP lietotājvārds
 $mail->Password = 'secret'; // SMTP parole
 $mail->SMTPSecure = 'tls'; // Iespējot TLS šifrēšanu, ir pieņemts arī [ICODE]ssl[/ICODE]
 $mail->Port = 587; // TCP ports, lai izveidotu savienojumu

//Saņēmēji
 $mail->setFrom('moc.e1728599446lpmax1728599446e@mor1728599446f1728599446', 'Sūtītājs');
 $mail->addAddress('ten.e1728599446lpmax1728599446e@1tn1728599446eipic1728599446er1728599446', 'John Doe'); // Pievienot saņēmēju
 $mail->addAddress('moc.e1728599446lpmax1728599446e@2tn1728599446eipic1728599446er1728599446'); // Vārds nav obligāts
 $mail->addReplyTo('moc.e1728599446lpmax1728599446e@ofn1728599446i1728599446', 'Informācija');
 $mail->addCC('moc.e1728599446lpmax1728599446e@cc1728599446');
 $mail->addBCC('moc.e1728599446lpmax1728599446e@ccb1728599446');

// Pielikumi
 $mail->addAttachment('/home/cpanelusername/attachment.txt'); // Pievienot pielikumus
 $mail->addAttachment('/home/cpanelusername/image.jpg', 'new.jpg'); // Iespējams nosaukums

// Saturs
 $mail->isHTML(true); // Iestatīt e-pasta formātu uz HTML
 $mail->Subject = 'Tēma';
 $mail->Body = 'Šī ir HTML ziņas ķermenis <b>pasvītrots!</b>';
 $mail->AltBody = 'Šis ir ķermeņa teksts vienkāršiem tekstveida pasta klientiem';

$mail->send();
 echo 'Ziņa ir nosūtīta';

} catch (Exception $e) {
 echo "Ziņu nevarēja nosūtīt. Pasta sūtītāja kļūda: {$mail->ErrorInfo}";
}
Was this article helpful?
Skatījumi: 564

BeeHosting 10. dzimšanas diena!
līdz 70% atlaide visiem pakalpojumiem
+ bezmaksas vietnes pārsūtīšana.

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Menu