Come inviare e-mail da uno script PHP utilizzando l'autenticazione SMTP

Sommario:

Come inviare e-mail da uno script PHP utilizzando l'autenticazione SMTP
Come inviare e-mail da uno script PHP utilizzando l'autenticazione SMTP
Anonim

Cosa sapere

  • Opzioni classe PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: annotare il nome del server di posta > verificare che PEAR Mail sia installato > modificare il file PHP utilizzando gli esempi forniti.

Questo articolo spiega come utilizzare l'autenticazione SMTP per inviare e-mail con la funzione PHP mail() in PEAR Mail.

Invio di email con la funzione PHP Mail

Quando usi la funzione PHP mail(), finisci per inviare e-mail direttamente dal tuo server web anziché dal tuo server di posta. Se hai un server di posta tramite il tuo host web, o anche un server di posta con un host diverso, di solito è meglio inviare la posta tramite quello.

Il problema è che la funzione PHP mail() non fornisce alcun modo integrato per inviare la posta tramite SMTP. Se vuoi aprire questa funzionalità, dovrai installare una classe PHP aggiuntiva.

Ecco alcune opzioni che funzionano:

  • Mailer PHP
  • SwiftMailer
  • Zend_Mail
  • Mailer esperto
  • PEAR Mail

Ti mostreremo come usare PEAR Mail, ma puoi usare qualsiasi classe che supporti SMTP.

Image
Image

Se il tuo host web ha già installato una o più di queste classi, probabilmente ha dei tutorial relativi alla tua situazione. In tal caso, vai avanti e usa la classe a cui hai accesso.

Usa questo metodo solo se stai usando PHP per creare i tuoi moduli di posta personalizzati. Se stai utilizzando un sistema di gestione dei contenuti (CMS) come WordPress, cerca un plug-in o una funzionalità integrata per inviare la posta tramite SMTP, piuttosto che provare a crearne una tua.

Come utilizzare PEAR per inviare posta tramite SMTP

  1. Assicurati che il tuo dominio sia puntato ai record Mail Exchange (MX) dell'host del tuo server di posta e prendi nota del nome del tuo server di posta. Ad esempio, potrebbe essere mail.tuodominio.net o smtp.tuodominio.net.
  2. Controlla se PEAR Mail è già installato sul tuo server di posta.
  3. Se PEAR Mail non è installato, consulta il tuo host di posta web per istruzioni specifiche per installarlo.
  4. Una volta installato PEAR Mail, modifica uno dei file PHP di esempio nelle sezioni seguenti per adattarlo alle tue esigenze.

Esempio di script PHP di posta PEAR per posta SMTP

Puoi creare il tuo script da zero, se lo desideri, o modificare il seguente esempio a tuo piacimento. Assicurati di inserire il nome del tuo server di posta web nella variabile host e usa le tue informazioni di accesso per il tuo host di posta web nei campi nome utente e password.

require_once "Mail.php";

$from="Nome mittente ";

$to="Nome destinatario ";

$subject=" Riga oggetto qui: ";

$body=" qualsiasi messaggio desideri ";

$host="yourmailhost.com";

$username="il tuo nome utente o email"; $password="la tua password";

$headers=array ('Da'=> $da, 'A'=> $to, 'Oggetto'=> $oggetto);

$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("

Messaggio inviato con successo!

);}

Esempio di script PHP PEAR Mail per autenticazione SMTP e crittografia SSL

Se desideri utilizzare l'autenticazione SMTP e la crittografia SSL, dovrai apportare alcune modifiche all'esempio precedente. Dovrai indirizzare la variabile host al tuo server di posta SSL e specificare anche un numero di porta come 25, 465, 587, 2525 o 8025. Contatta il tuo host di posta web per ulteriori informazioni se non riesci a capire quale porta usa.

require_once "Mail.php";

$from="Nome mittente ";

$to="Nome destinatario ";

$subject=" Riga oggetto qui: ";

$body=" qualsiasi messaggio desideri ";

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

$port="587"; $username="il tuo nome utente o email";

$password="la tua password";

$headers=array ('From'=> $from, ' To'=> $to, 'Oggetto'=> $oggetto);

$smtp=Mail::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("

Messaggio inviato con successo!

);}

Consigliato: