Ako odoslať e-mail z PHP skriptu pomocou overenia SMTP

Obsah:

Ako odoslať e-mail z PHP skriptu pomocou overenia SMTP
Ako odoslať e-mail z PHP skriptu pomocou overenia SMTP
Anonim

Čo by ste mali vedieť

  • Možnosti triedy PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Poznamenajte si názov poštového servera > skontrolujte, či je nainštalovaný PEAR Mail > upravte súbor PHP pomocou uvedených príkladov.

Tento článok vysvetľuje, ako používať autentifikáciu SMTP na odosielanie e-mailov pomocou funkcie PHP mail() v PEAR Mail.

Odosielanie e-mailu pomocou funkcie PHP Mail

Keď použijete funkciu PHP mail(), budete posielať e-maily priamo z vášho webového servera a nie z vášho poštového servera. Ak máte poštový server prostredníctvom svojho webového hostiteľa alebo dokonca poštový server s iným hostiteľom, zvyčajne je lepšie posielať poštu namiesto neho.

Problém je v tom, že funkcia PHP mail() neposkytuje žiadny vstavaný spôsob odosielania pošty cez SMTP. Ak chcete túto funkciu otvoriť, budete musieť nainštalovať ďalšiu triedu PHP.

Tu je niekoľko možností, ktoré fungujú:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Ukážeme vám, ako používať PEAR Mail, ale môžete použiť akúkoľvek triedu, ktorá podporuje SMTP.

Image
Image

Ak váš webový hostiteľ už má nainštalovanú jednu alebo viacero z týchto tried, pravdepodobne má návody týkajúce sa vašej situácie. Ak áno, pokračujte a použite triedu, ku ktorej máte prístup.

Túto metódu používajte iba vtedy, ak na vytváranie vlastných poštových formulárov používate PHP. Ak používate systém na správu obsahu (CMS), ako je WordPress, hľadajte doplnok alebo vstavanú funkciu na odosielanie pošty cez SMTP, než sa pokúšate vytvoriť svoj vlastný.

Ako používať PEAR na odosielanie pošty cez SMTP

  1. Uistite sa, že vaša doména je nasmerovaná na záznamy Mail Exchange (MX) vášho hostiteľa poštového servera a poznačte si názov vášho poštového servera. Môže to byť napríklad mail.yourdomain.net alebo smtp.yourdomain.net.
  2. Skontrolujte, či už PEAR Mail nie je nainštalovaný na vašom poštovom serveri.
  3. Ak PEAR Mail nie je nainštalovaný, konkrétne pokyny na jeho inštaláciu získate od svojho hostiteľa webovej pošty.
  4. Po nainštalovaní PEAR Mail upravte jeden z príkladov PHP súborov v nasledujúcich sekciách, aby vyhovoval vašim potrebám.

Príklad PHP skriptu PEAR Mail pre poštu SMTP

Ak chcete, môžete si vytvoriť svoj vlastný skript od začiatku alebo upraviť nasledujúci príklad podľa svojich predstáv. Uistite sa, že ste do premennej hostiteľa zadali názov svojho webového poštového servera a do polí používateľského mena a hesla použite svoje prihlasovacie informácie pre hostiteľa webovej pošty.

require_once "Mail.php";

$from="Meno odosielateľa ";

$to="Meno príjemcu ";

$subject=" Tu je riadok predmetu: ";

$body=" akúkoľvek správu, ktorú chcete ";

$hostiteľ="yourmailhost.com";

$username="vaše používateľské meno alebo e-mail"; $password="vaše heslo";

$headers=pole ('Od'=> $od, 'Do'=> $do, 'Predmet'=> $subject);

$smtp=Mail::factory('smtp', array ('hostiteľ'=> $hostiteľ, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (HRUŠKA::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Správa bola úspešne odoslaná!

);}

Príklad PHP skriptu PEAR Mail na overenie SMTP a šifrovanie SSL

Ak chcete použiť autentifikáciu SMTP a šifrovanie SSL, budete musieť vykonať niekoľko úprav v predchádzajúcom príklade. Budete musieť nasmerovať hostiteľskú premennú na váš poštový server SSL a tiež zadať číslo portu, napríklad 25, 465, 587, 2525 alebo 8025. Ak neviete zistiť, ktorý port vám poskytne hostiteľ webovej pošty, použite.

require_once "Mail.php";

$from="Meno odosielateľa ";

$to="Meno príjemcu ";

$subject=" Tu je riadok predmetu: ";

$body=" akúkoľvek správu, ktorú chcete ";

$hostiteľ="ssl://yourmailhost.com";

$port="587"; $username="vaše používateľské meno alebo e-mail";

$password="vaše heslo";

$headers=pole ('Od'=> $from, ' Komu'=> $to, 'Predmet'=> $predmet);

$smtp=Mail::factory('smtp', array ('hostiteľ'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (HRUŠKA::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Správa bola úspešne odoslaná!

);}

Odporúča: