Jak wysłać e-mail ze skryptu PHP przy użyciu uwierzytelniania SMTP

Spisu treści:

Jak wysłać e-mail ze skryptu PHP przy użyciu uwierzytelniania SMTP
Jak wysłać e-mail ze skryptu PHP przy użyciu uwierzytelniania SMTP
Anonim

Co warto wiedzieć

  • Opcje klas PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Zanotuj nazwę serwera pocztowego > sprawdź, czy jest zainstalowany PEAR Mail > zmodyfikuj plik PHP, korzystając z podanych przykładów.

Ten artykuł wyjaśnia, jak używać uwierzytelniania SMTP do wysyłania wiadomości e-mail za pomocą funkcji PHP mail() w PEAR Mail.

Wysyłanie wiadomości e-mail za pomocą funkcji poczty PHP

Kiedy używasz funkcji PHP mail(), wysyłasz e-maile bezpośrednio z serwera WWW, a nie z serwera poczty. Jeśli masz serwer pocztowy za pośrednictwem swojego hosta internetowego lub nawet serwer pocztowy z innym hostem, zwykle lepiej jest zamiast tego wysyłać pocztę.

Problem polega na tym, że funkcja PHP mail() nie zapewnia żadnego wbudowanego sposobu wysyłania poczty przez SMTP. Jeśli chcesz otworzyć tę funkcjonalność, musisz zainstalować dodatkową klasę PHP.

Oto kilka opcji, które działają:

  • Poczta PHP
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Pokażemy Ci, jak korzystać z PEAR Mail, ale możesz użyć dowolnej klasy obsługującej SMTP.

Image
Image

Jeżeli Twój hosting ma już zainstalowaną jedną lub więcej z tych klas, prawdopodobnie zawiera samouczki dotyczące Twojej sytuacji. Jeśli tak, skorzystaj z klasy, do której masz dostęp.

Użyj tej metody tylko wtedy, gdy używasz PHP do tworzenia własnych niestandardowych formularzy pocztowych. Jeśli korzystasz z systemu zarządzania treścią (CMS), takiego jak WordPress, poszukaj wtyczki lub wbudowanej funkcji do wysyłania poczty przez SMTP, zamiast tworzyć własne.

Jak używać PEAR do wysyłania poczty przez SMTP

  1. Upewnij się, że Twoja domena jest skierowana do rekordów Mail Exchange (MX) hosta serwera poczty i zanotuj nazwę swojego serwera poczty. Na przykład może to być poczta.twojadomena.net lub smtp.twojadomena.net.
  2. Sprawdź, czy PEAR Mail jest już zainstalowany na twoim serwerze pocztowym.
  3. Jeżeli PEAR Mail nie jest zainstalowany, skonsultuj się ze swoim hostem poczty internetowej, aby uzyskać szczegółowe instrukcje dotyczące jego instalacji.
  4. Po zainstalowaniu PEAR Mail zmodyfikuj jeden z przykładowych plików PHP w poniższych sekcjach, aby dopasować go do swoich potrzeb.

Przykładowy skrypt PHP PEAR Mail dla poczty SMTP

Możesz stworzyć własny skrypt od podstaw, jeśli chcesz, lub zmodyfikować poniższy przykład według własnych upodobań. Upewnij się, że wpisałeś nazwę serwera poczty internetowej w zmiennej hosta i użyj informacji logowania do hosta poczty internetowej w polach nazwy użytkownika i hasła.

require_once "Mail.php";

$from="Nazwa nadawcy ";

$to="Nazwa odbiorcy ";

$subject="Tutaj wiersz tematu: ";

$body=" dowolna wiadomość ";

$host="twójhostpoczta.com";

$username="twoja nazwa użytkownika lub adres e-mail"; $hasło="twoje hasło";

$nagłówki=tablica ('Od'=> $od, 'Do'=> $do, 'Temat'=> $temat);

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

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

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Wiadomość wysłana pomyślnie!

);}

Przykładowy skrypt PHP PEAR Mail do uwierzytelniania SMTP i szyfrowania SSL

Jeśli chcesz używać uwierzytelniania SMTP i szyfrowania SSL, będziesz musiał dokonać kilku modyfikacji w poprzednim przykładzie. Musisz wskazać zmienną hosta na swój serwer poczty SSL, a także podać numer portu, taki jak 25, 465, 587, 2525 lub 8025. Skontaktuj się ze swoim hostem poczty internetowej, aby uzyskać więcej informacji, jeśli nie możesz określić, który port użyj.

require_once "Mail.php";

$from="Nazwa nadawcy ";

$to="Nazwa odbiorcy ";

$subject="Tutaj wiersz tematu: ";

$body=" dowolna wiadomość ";

$host="ssl://twojhostpoczta.com";

$port="587"; $username="Twoja nazwa użytkownika lub adres e-mail";

$password="Twoje hasło";

$headers=tablica ('Od'=> $z, ' Do'=> $do, 'Temat'=> $temat);

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

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

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Wiadomość wysłana pomyślnie!

);}

Zalecana: