Jak odeslat e-mail z PHP skriptu pomocí ověřování SMTP

Obsah:

Jak odeslat e-mail z PHP skriptu pomocí ověřování SMTP
Jak odeslat e-mail z PHP skriptu pomocí ověřování SMTP
Anonim

Co je dobré vědět

  • Možnosti třídy PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Poznamenejte si název poštovního serveru > zkontrolujte, zda je nainstalován PEAR Mail > upravte soubor PHP pomocí uvedených příkladů.

Tento článek vysvětluje, jak používat ověřování SMTP k odesílání e-mailů pomocí funkce PHP mail() v PEAR Mail.

Odesílání e-mailu pomocí funkce PHP Mail

Když používáte funkci PHP mail(), nakonec odesíláte e-mail přímo z vašeho webového serveru, nikoli z vašeho poštovního serveru. Pokud máte poštovní server prostřednictvím svého webového hostitele nebo dokonce poštovní server s jiným hostitelem, je obvykle lepší posílat poštu přes něj.

Problém je v tom, že funkce PHP mail() neposkytuje žádný vestavěný způsob odesílání pošty přes SMTP. Pokud chcete tuto funkci otevřít, budete muset nainstalovat další třídu PHP.

Zde je několik možností, které fungují:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Ukážeme vám, jak používat PEAR Mail, ale můžete použít jakoukoli třídu, která podporuje SMTP.

Image
Image

Pokud váš webový hostitel již má nainstalovanou jednu nebo více těchto tříd, pravděpodobně má výukové programy týkající se vaší situace. Pokud ano, pokračujte a použijte kurz, ke kterému máte přístup.

Tuto metodu používejte pouze v případě, že k vytváření vlastních poštovních formulářů používáte PHP. Pokud používáte systém pro správu obsahu (CMS), jako je WordPress, hledejte plugin nebo vestavěnou funkci pro odesílání pošty přes SMTP, místo abyste se pokoušeli vytvořit svůj vlastní.

Jak používat PEAR k odesílání pošty přes SMTP

  1. Ujistěte se, že vaše doména směřuje na záznamy Mail Exchange (MX) hostitele vašeho poštovního serveru a poznamenejte si název vašeho poštovního serveru. Může to být například mail.yourdomain.net nebo smtp.yourdomain.net.
  2. Zkontrolujte, zda je PEAR Mail již nainstalován na vašem poštovním serveru.
  3. Pokud PEAR Mail není nainstalován, poraďte se se svým hostitelem webové pošty, abyste jej mohli nainstalovat.
  4. Jakmile je PEAR Mail nainstalován, upravte jeden z ukázkových souborů PHP v následujících částech tak, aby vyhovoval vašim potřebám.

Příklad PHP skriptu PEAR Mail pro poštu SMTP

Můžete si vytvořit svůj vlastní skript od začátku, pokud chcete, nebo upravit následující příklad podle svého. Ujistěte se, že jste do proměnné hostitel zadali název svého webového poštovního serveru a do polí uživatelského jména a hesla použijte své přihlašovací údaje k hostiteli webové pošty.

require_once "Mail.php";

$from="Jméno odesílatele ";

$to="Jméno příjemce ";

$subject=" Zde řádek předmětu: ";

$body=" libovolnou zprávu ";

$host="vašeho hostitele.com";

$username="vaše uživatelské jméno nebo e-mail"; $password="vaše heslo";

$headers=pole ('Od'=> $od, 'Do'=> $do, 'Předmět'=> $subject);

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

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

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

echo("

". $mail->getMessage()."

);

} else {echo("

Zpráva úspěšně odeslána!

);}

Příklad PHP skriptu PEAR Mail pro ověřování SMTP a šifrování SSL

Pokud chcete používat ověřování SMTP a šifrování SSL, budete muset provést několik úprav v předchozím příkladu. Budete muset nasměrovat hostitelskou proměnnou na váš poštovní server SSL a také zadat číslo portu, jako je 25, 465, 587, 2525 nebo 8025. Pokud nemůžete zjistit, který port vám poskytne hostitel webové pošty, použij.

require_once "Mail.php";

$from="Jméno odesílatele ";

$to="Jméno příjemce ";

$subject=" Zde řádek předmětu: ";

$body=" libovolnou zprávu, kterou chcete ";

$hostitel="ssl://yourmailhost.com";

$port="587"; $username="vaše uživatelské jméno nebo e-mail";

$password="vaše heslo";

$headers=pole ('Od'=> $from, ' Komu'=> $to, 'Předmět'=> $předmět);

$smtp=Mail::factory('smtp', array ('host'=> $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("

Zpráva úspěšně odeslána!

);}

Doporučuje: