Com enviar correu electrònic des d'un script PHP mitjançant l'autenticació SMTP

Taula de continguts:

Com enviar correu electrònic des d'un script PHP mitjançant l'autenticació SMTP
Com enviar correu electrònic des d'un script PHP mitjançant l'autenticació SMTP
Anonim

Què cal saber

  • Opcions de classe PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Anoteu el nom del servidor de correu > comproveu que PEAR Mail estigui instal·lat > modifiqueu el fitxer PHP utilitzant els exemples donats.

Aquest article explica com utilitzar l'autenticació SMTP per enviar correu electrònic amb la funció PHP mail() a PEAR Mail.

Enviament de correu electrònic amb la funció de correu PHP

Quan utilitzeu la funció PHP mail(), acabeu enviant correu electrònic directament des del vostre servidor web en lloc del vostre servidor de correu. Si teniu un servidor de correu a través del vostre amfitrió web, o fins i tot un servidor de correu amb un altre amfitrió, normalment és millor enviar correu a través d'aquest lloc.

El problema és que la funció PHP mail() no proporciona cap manera integrada d'enviar correu mitjançant SMTP. Si voleu obrir aquesta funcionalitat, haureu d'instal·lar una classe PHP addicional.

Aquí hi ha algunes opcions que funcionen:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • Correu de PERA

Us mostrarem com utilitzar PEAR Mail, però podeu utilitzar qualsevol classe que admeti SMTP.

Image
Image

Si el vostre amfitrió web ja té instal·lades una o més d'aquestes classes, és probable que tingui tutorials relacionats amb la vostra situació. Si és així, seguiu endavant i utilitzeu la classe a la qual teniu accés.

Només utilitzeu aquest mètode si feu servir PHP per crear els vostres propis formularis de correu personalitzats. Si utilitzeu un sistema de gestió de contingut (CMS) com WordPress, cerqueu un connector o una funcionalitat integrada per enviar correu mitjançant SMTP, en lloc d'intentar crear-ne el vostre.

Com utilitzar PEAR per enviar correu mitjançant SMTP

  1. Assegureu-vos que el vostre domini estigui apuntat als registres de Mail Exchange (MX) de l'amfitrió del vostre servidor de correu i anoteu el nom del vostre servidor de correu. Per exemple, pot ser mail.yourdomain.net o smtp.yourdomain.net.
  2. Comproveu si PEAR Mail ja està instal·lat al vostre servidor de correu.
  3. Si PEAR Mail no està instal·lat, consulteu amb el vostre amfitrió de correu web per obtenir instruccions específiques per instal·lar-lo.
  4. Un cop instal·lat PEAR Mail, modifiqueu un dels fitxers PHP d'exemple de les seccions següents perquè s'adapti a les vostres necessitats.

Exemple d'script PHP de PEAR Mail per a correu SMTP

Podeu crear el vostre propi script des de zero si voleu, o modificar l'exemple següent al vostre gust. Assegureu-vos d'introduir el nom del vostre servidor de correu web a la variable d'amfitrió i utilitzeu la informació d'inici de sessió per al vostre amfitrió de correu web als camps de nom d'usuari i contrasenya.

require_once "Mail.php";

$from="Nom del remitent";

$to="Nom del destinatari";

$subject=" Línia d'assumpte aquí: ";

$body=" qualsevol missatge que vulgueu ";

$host="yourmailhost.com";

$username="el vostre nom d'usuari o correu electrònic"; $password="la vostra contrasenya";

$headers=matriu ('De'=> $de, 'A'=> $a, 'Assumpte'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'nom d'usuari'=> $nom d'usuari, 'contrasenya'=> $contrasenya));

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

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

echo("

". $mail->getMessage()."

);

} més {echo ("

El missatge s'ha enviat correctament!

);}

Exemple d'script PHP de PEAR Mail per a l'autenticació SMTP i el xifratge SSL

Si voleu utilitzar l'autenticació SMTP i el xifratge SSL, haureu de fer algunes modificacions a l'exemple anterior. Haureu d'apuntar la variable amfitrió al vostre servidor de correu SSL i també especificar un número de port com ara 25, 465, 587, 2525 o 8025. Contacteu amb el vostre amfitrió de correu web per obtenir més informació si no podeu esbrinar quin port voleu. utilitza.

require_once "Mail.php";

$from="Nom del remitent";

$to="Nom del destinatari";

$subject=" Línia d'assumpte aquí: ";

$body=" qualsevol missatge que vulgueu ";

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

$port="587"; $username="el vostre nom d'usuari o correu electrònic";

$password="la vostra contrasenya";

$headers=matriu ('De'=> $de, ' A'=> $a, 'Assumpte'=> $subject);

$smtp=Mail::factory('smtp', array ('amfitrió'=>) $host, 'port'=> $port, 'auth'=> cert, 'nom d'usuari'=> $nom d'usuari, 'contrasenya'=> $contrasenya));

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

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

echo("

". $mail->getMessage()."

);

} més {echo ("

El missatge s'ha enviat correctament!

);}

Recomanat: