Subido por Maria Fernanda Leon Flores

Creando un archivo de prueba para el correo PHP

Anuncio
Creando un archivo de prueba para el correo PHP
En primer lugar, debes crear un archivo para el script de PHP mail y colocarlo en el
directorio public_html para que se pueda acceder fácilmente a través del nombre de dominio.
1.
2.
Para acceder al hPanel, haz clic en el Administrador de archivos.
Crea un nuevo archivo haciendo clic en Agregar nuevo. En este ejemplo lo
llamamos testmail.php y luego presiona Crear.
3.
Haz doble clic en testmail.php ya que necesitarás editarlo usando la función PHP mail ().
Aquí hay un ejemplo de los componentes básicos de la función que utilizaremos en este
tutorial. Estos se explicarán con más detalle en la siguiente sección. Por ahora, haz clic
en Guardar y cerrar cuando hayas terminado de editar.
4.
Ahora, puedes enviar un correo electrónico accediendo a TuDominio/testmail.php desde el
navegador. Recuerda que debes cambiar TuDominio al dominio que utilizaste para
crear testmail.php.
Tu correo electrónico objetivo recibirá el mensaje que enviaste. La bandeja de entrada de tu
destinatario recibirá el correo electrónico de prueba.
5.
Entendiendo los componentes de PHP Mail
Como mencionamos antes, te presentaremos los componentes de un script de PHP mail básico. Para este
ejemplo, hemos usado una sintaxis básica de correo electrónico para ayudarte a comprender esta función
con más detalle.
Aquí está la sintaxis PHP que hemos usado en la sección anterior:
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "[email protected]";
$to = "[email protected]";
$subject = "Checking PHP mail";
$message = "PHP mail works just fine";
$headers = "From:" . $from;
mail($to,$subject,$message, $headers);
echo "The email message was sent.";
?>
Vamos a desglosarla paso a paso:
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
Estas dos primeras líneas permiten la notificación de errores: te informarán si el script no se ejecuta.
$from = "[email protected]";
Esta línea debe contener la dirección de correo electrónico del remitente. La mayoría de los proveedores
de alojamiento no permiten direcciones de correo electrónico aleatorias aquí, ya que puede usarse para
falsificar. Utiliza uno creado para tu nombre de dominio o marca para ejecutar PHP mail con éxito.
$to = "[email protected]";
Aquí es donde insertas la dirección de correo electrónico de tu destinatario.
$subject = "Checking PHP mail";
Ingresa el asunto de tu mensaje de correo electrónico en esta línea.
$message = "PHP mail works just fine";
Aquí puedes redactar tu mensaje.
$headers = "From:" . $from;
Detalla la información vital, como la dirección del remitente, la ubicación de respuesta, etc.
mail ($to,$subject,$message,$headers);
Esta línea se usa para ejecutar la función.
echo "The email message was sent.";
El mensaje que aparecerá una vez que el script se ejecute con éxito.
Usar PHPMailer para enviar correos
PHPMailer es una popular biblioteca de envío de correo para PHP. Es compatible con el envío de correo
a través de la función mail() o Simple Mail Transfer Protocol (SMTP). Esta biblioteca simplifica el
complicado proceso de crear un correo PHP al proporcionar un conjunto de funciones para crear y enviar
un correo electrónico.
Instalar PHPMailer es bastante simple, especialmente si tienes Composer instalado. Si estás
utilizando Hostinger, no necesitas preocuparte por esto ya que viene preinstalado con todos nuestros
planes de alojamiento.
No obstante, si necesitas instalar PHPMailer manualmente, debes conectar tu cuenta de alojamiento a
través del terminal SSH. Sigue estos pasos:
1.
2.
Descarga e instala el cliente PuTTY SSH.
Ve a tu panel de hPanel, busca y haz clic en Acceso SSH en la sección Avanzado.
3.
4.
5.
6.
7.
8.
9.
Toma nota de la información de acceso SSH. Necesitarás la dirección IP SSH, puerto,
nombre de usuario y contraseña.
Abre PuTTY, luego configura tu IP SSH y el puerto correspondiente.
Presiona Abrir y aparecerá una ventana de comando. Escribe tu nombre de
usuario y contraseña SSH. Una vez hecho esto, presiona Enter.
NOTA: PuTTY NO mostrará tu contraseña. No te confundas si tu contraseña no aparece en
la pantalla.
Ejecuta el siguiente comando: cd public_html
Presiona Enter, luego ejecuta este comando: composer require phpmailer/phpmailer
Espera un momento hasta que finalice el proceso de instalación.
Usando PHPMailer con Hostinger SMTP
Una vez que tengas listo PHPMailer, puedes usarlo para enviar correos PHP usando Hostinger SMTP.
1.
Crea una cuenta de correo electrónico accediendo a tu hPanel, luego ve a Cuenta de correo ->
Crear una nueva cuenta de Email. Completa la nueva dirección de correo electrónico y establece
una contraseña antes de hacer clic en Crear.
2.
Cuando hayas terminado, presta atención a tus datos SMTP ubicados en la misma sección:
NOTA: Debes recordar el nombre de usuario de la cuenta de correo electrónico, la contraseña
de la cuenta, host SMTP y puerto SMTP para enviar un correo electrónico usando PHPMailer.
3.
Crea un archivo testphpmailer.php en Public_html. Accede al panel de control de hPanel y haz
clic en Administrador de archivos.
4.
Presiona Agregar nuevo. Nombra el archivo como testphpmailer.php y haz clic en Crear.
5.
Haz doble clic en el archivo testphpmailer.php recién creado, luego copia y pega lo siguiente:
6.
7.
<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'YOUR PASSWORD HERE';
$mail->setFrom('[email protected]', 'Your Name');
$mail->addReplyTo('[email protected]', 'Your Name');
$mail->addAddress('[email protected]', 'Receiver Name');
$mail->Subject = 'Testing PHPMailer';
$mail->msgHTML(file_get_contents('message.html'), __DIR__);
$mail->Body = 'This is a plain text message body';
//$mail->addAttachment('test.txt');
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'The email message was sent.';
}
?>
Modifica
el
código
anterior
según
corresponda.
Por
ejemplo,
debes
reemplazar EMAIL_ACCOUNT_PASSWORD por tu contraseña de correo electrónico
o [email protected] con tu nombre de usuario, [email protected] con
la dirección de correo electrónico de tu destinatario, etc. Una vez hecho esto, haz clic
en Guardar y cerrar.
Tu
PHPMailer
ahora
está
listo
para
ser
utilizado.
Ejecutael
script
ingresando TuDominio.com/testphpmailer.php en tu navegador.
Entendiendo los componentes de PHPMailer
Para comprender cómo funciona PHPMailer, investiguemos el script de ejemplo anterior que utiliza SMTP
para la entrega por correo electrónico. Aquí está la explicación de cada componente:
use PHPMailer\PHPMailer\PHPMailer;
Esta línea importa la clase PHPMailer al espacio de nombres global.
require '../vendor/autoload.php';
Incluye varias bibliotecas que PHPMailer necesita.
$mail->
Todas estas variables contienen información vital, como detalles del servidor, encabezados, mensajes,
archivos adjuntos y más. En resumen, se aseguran de que el remitente sea legítimo con la autenticación
SMTP.
if (!$mail->send()) {
Define qué sucede cuando se ejecuta el script.
echo 'Mailer Error: ' . $mail->ErrorInfo;
Mostrará un mensaje de error con una explicación cuando la secuencia de comandos no se envíe.
} else {
Define lo que sucede si el script se ejecuta.
echo 'The email message was sent!';
Si el correo electrónico se envía correctamente, aparecerá este mensaje.
Tip profesional: la línea SMTPDebug = 2; solo es útil cuando pruebas una secuencia de comandos y deseas
ver cómo funciona. Debes cambiarlo a SMTPDebug = 0; si ya terminaste la prueba. Esto se hace para evitar
que el usuario final vea el informe de entrega SMTP.
Si revisaste todo el código, notarás que estamos haciendo algo un poco diferente al primer ejemplo,
estamos enviando un mensaje HTML en vez de una pieza de texto.
Por lo tanto, tu mensaje cargará tu contenido desde el archivo message.html ubicado en el mismo
directorio: public_html.
Este formato ofrece una mayor funcionalidad en comparación con los mensajes de texto sin formato, ya
que HTML es altamente personalizable. Puedes cambiar el color, el estilo, la imagen o incluso incluir
archivos multimedia que generalmente son obsoletos en un correo electrónico de texto sin formato.
Formulario de contacto de PHPMailer
Puedes utilizar PHPMailer para mucho más que simplemente enviar mensajes simples a través de PHP.
Una forma de utilizarlo es crear un formulario de contacto donde tus visitantes o usuarios puedan ponerse
en contacto contigo.
Aquí hay un ejemplo básico de tal script:
<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'EMAIL_ACCOUNT_PASSWORD';
$mail->setFrom('[email protected]', 'Mr. Drago');
$mail->addAddress('[email protected]', 'Receiver Name');
if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
$mail->Subject = 'PHPMailer contact form';
$mail->isHTML(false);
$mail->Body = <<<EOT
Email: {$_POST['email']}
Name: {$_POST['name']}
Message: {$_POST['message']}
EOT;
if (!$mail->send()) {
$msg = 'Sorry, something went wrong. Please try again later.';
} else {
$msg = 'Message sent! Thanks for contacting us.';
}
} else {
$msg = 'Share it with us!';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact form</title>
</head>
<body>
<h1>Do You Have Anything in Mind?</h1>
<?php if (!empty($msg)) {
echo "<h2>$msg</h2>";
} ?>
<form method="POST">
<label for="name">Name: <input type="text" name="name" id="name"></label><br><br>
<label for="email">Email: <input type="email" name="email"
id="email"></label><br><br>
<label for="message">Message: <textarea name="message" id="message" rows="8"
cols="20"></textarea></label><br><br>
<input type="submit" value="Send">
</form>
</body>
</html>
Al igual que con los scripts anteriores, debes crear un nuevo archivo en la carpeta public_html. En este
caso, nombramos el archivo formscript.php. Edita la información dentro del script respectivamente.
Después de eso, solo necesitas ejecutar el script desde tu navegador.
Así es cómo lucirá el resultado final:
Una vez que tu cliente envíe un mensaje, recibirá un mensaje de confirmación y el contenido llegará a la
bandeja de entrada del correo electrónico que ingresaste aquí:
$mail->addAddress('[email protected]', 'Receiver Name');
Tip profesional: En caso de que el formulario de contacto de PHPMailer no funcione, agrega la siguiente
línea para ver la causa del problema: $mail->SMTPDebug = 2; No olvides quitarlo o cambiarlo
de 2 a 0 cuando termines!
PHPMailer ofrece ejemplos adicionales que puedes probar en su repositorio oficial de GitHub. Además,
si usas WordPress, puedes crear fácilmente un formulario de contacto con la ayuda de plugins como WP
Forms, Formidable Forms o Gravity Forms.
Solución a errores comunes de PHP mail y PHPMailer
Pueden ocurrir errores de vez en cuando al usar PHP Mail o PHPMailer. A continuación, te mostramos una
lista de los problemas más comunes y las formas de solucionarlos.
Dirección del remitente rechazada: no es propiedad del usuario
Este error significa que el servidor no pudo autenticarse con los detalles proporcionados.
Para solucionarlo, verifica la dirección de correo electrónico que utilizaste para enviar el mensaje y
asegúrate de que corresponda a una casilla de correo electrónico existente. Si estás apuntando a una
bandeja de entrada incorrecta, cámbiala en consecuencia. Además, verifica que hayas habilitado
tu registro SPF.
Gmail no pudo verificar que TuDominio.com envió este mensaje
Si ves esta advertencia al probar un script de correo PHP, podría significar una de los siguientes cosas:


Tu registro SPF no está habilitado.
Has enviado un correo electrónico desde una dirección que no existe o que no te pertenece.
Asegúrate de utilizar detalles de autenticación SMTP válidos.
El correo va a la carpeta de correo no deseado
Hay varias razones por las que un correo PHP puede aparecer como spam. Éstos son algunos de las más
comunes:




Asunto engañoso o parecido a spam. Algunos ejemplos de eso serían «prueba» o
«probando«, «hola«, «urgente» o algo similar. Asegúrate de establecer una intención clara
en el asunto de tu mensaje.
Estás utilizando una dirección de remitente incorrecta que invoca las medidas de seguridad
para filtrar tu correo electrónico. Esto se realiza como prevención contra la suplantación de
identidad y estafas por correo electrónico.
Estás utilizando palabras de activación de spam. Esta categoría incluye frases como «gran
oferta» «haz clic aquí» «promoción especial» «esto no es spam» y así sucesivamente.
Intenta cambiar el contenido de tu mensaje para ver si ese es el caso.
Tu lista de correo no tiene un botón para darse de baja. Cuando hay muchas personas que
reportan tus correos electrónicos como spam, te resultará difícil evitar el filtro de spam.
Tener un botón para darse de baja es una excelente manera de evitar esto e inspirar más
confianza en tus lectores.
Descargar