En el día de hoy les enseñaremos como enviar un correo a través de una función en PHP, pero no solo eso, si no que les enseñaremos como hacer pruebas desde su computador, sin necesidad de subir el archivo a un servidor.
Para ver Cómo Lo Hago, vamos después del salto.
– Xampp (Sirve para “montar” el servidor en su equipo, pueden descargarlo aquí)
– MiniRelay (Sirve para crear el servidor de correo, lo pueden descargar aquí)
– Algun editor PHP, como Dreaweaver.
– Internet Explorer
1.- Instalamos Xampp, se instalará por defecto en C:\Xampp, luego de instalado, vamos a la carpeta, dentro de este buscamos una carpeta que se llama “PHP” y dentro de ella buscamos el archivo “php.ini”, abrimos este archivo.
2.- Como a las 3 cuartas partes del archivo, encontramos el sigueinte texto:
3.- Modificamos el texto, para que quede así:
Como ven cambiamos “localhost” por “127.0.0.1” dejando lo demas intacto, guardamos el archivo.
4.- Volvemos a C:\Xampp y buscamos un archivo que se llama “Xampp_Start.exe” lo ejecutamos y se abrira una ventana como esta:
Despues de unos segundos la ventana se cerrara, con esto, tenemos nuestro servidor local funcionando.
5.- Hecho todo esto, descomprimios el archivo miniRelay.zip, lo podemos descomprimir donde queramos. Vemos que esta el archivo “miniRelay.exe” y una carpeta, ejecutamos el archivo .exe y se abrira una ventana como esta:
Y con esto terminó la configuración de este programa.
6.- Ahora si, vamos al codigo como tal, pondremos entre los simbolos /* */ comentarios explicando el código:
<?php
/*INICIAMOS EL CODIGO PHP*/
$header=”From: Prueba<prueba@comolohago.cl>\n“;
/*CREAMOS UN HEADER DONDE DEFINIMOS EL REMITENTE DEL CORREO,
ESTO LO ASIGNAMOS A LA VARIABLE $header*/
$header.=”MIME-Version: 1.0\n”;
$header.=”Content-type: text/html; charset=iso-8859-1″;
/*CONTINUAMOS EL HEADER (NOTESE EL “.=” EN VEZ DE SOLO “=”),
DEFINIDIENDO AHORA, QUE EL CORREO SE ENVIARA EN FORMATO HTML.
ESTO TAMBIEN LO ASIGNAMOS A LA VARIABLE $header*/
$msj=”Mensaje de prueba”;
$msj.=”<br><a href=’www.comolohago.cl’>Click</a>”;
/*CREAMOS EL MENSAJE (NOTESE NUEVAMENTE EL “.=”) QUE IRA EN EL CORREO
Y LO ASIGNAMOS A LA VARIABLE $msj*/
$dest=”prueba@dominio.com“;
/*ASIGNAMOS A LA VARIABLE $dest EL CORREO AL QUE ENVIAREMOS EL CORREO
LAS PRUEBAS DEBEN HACERSE CON UN CORREO REAL*/
$asunto=”Correo de Prueba”;
/* EN LA VARIABLE $asunto GUARDAMOS EL ASUNTO DEL MENSAJE*/
mail($dest,$asunto,$msj,$header);
/*EJECUTAMOS LA FUNCION COMO TAL, EL ORDEN ES IMPORTANTE ASI QUE SE DEBE MANTENER,
USAMOS LAS VARIABLES QUE ASIGNAMOS ANTERIORMENTE*/
?>
/*TERMINAMOS EL CODIGO PHP*/
Este código solo enviará el correo, asi que no aparecera nada en pantalla. Debe ir entre las etiquetas “body”.
7.- Guardamos este archivo con el nombre que deseen y la extensión PHP y lo guardan en la carpeta “htdocs” dentro de C:\Xampp.
8.- Ahora con el servidor de correo abierto, abrimos Internet Explorer y escribimos “localhost/nombredearchivo.php”, donde nombredearchivo es el nombre con el que guardaron la página, como la página no muestra nada, solo les queda revisar su correo y verán como el correo fue enviado.
Con esto ya podemos hacer pruebas de envio de correos con la funcion mail() desde nuestro computador.
Por ahora,
Me despido
7:33:56 pm
No es por nada, pero el último comentario quedó fuera del PHP, y de esa forma saldría impreso en pantalla
4:32:20 pm
hola, por favor si me podrias ayudar
yo tengo instalado appserv descargue minirlay segui los pasos de tu ejemplo. bueno guarde el archivo en la carpeta www. pero no manda emails lo que hace es que muestra el archivo.php que guarde
te agradeceria que me ayudes no se que hacer …
pruebo con fromulario y si no abre el archivo.php la pantalla queda en blanco y no llega el e-mail
9:42:24 pm
@sandra
En que carpeta guardaste el archivo? y que te muestra? el texto?
10:39:37 am
Puta wn que quieres que te diga, estaba trabajando en un proyecto en la universidad y esto me funcionó de espectacularmente, muchas gracias ^^.
8:31:45 pm
Hice todo al pie de la letra y no funcionó… talvez tengo que configurar algo dentro del WinXp
8:34:45 pm
.. por cierto cuando ejecuto el MiniRelay me sale un mensaje “Could not bind Socket. Addres and port are already in use”… que hago???
1:08:29 pm
me sale este error en minirelay ] ERROR: Se ha reintentado el envio 3 veces, devolviendo mensaje
4:06:54 am
hola q tal muy buen aporte, pero estoy haciendo un sistema en php en la universidad y pues! quiero mandar correos a hotmailtnbn supuestamente los manda pero luego los rechaza por motivos de seguridad dice en minirelay, q porq no tengo una ip estatica, la puse estatica y no me dio resultado, luego probe con el yahoo y si me lo mando pero como spam! so, mi pregunta es como hacer para q me el servidor de hotmail no me rechaze los correos q mando, y como hacer para q en el yahoo no se reciba como spam!!!!
necesito ayuda xfavor ya que el 13 de enero del 2010 tengo la defensa fina;l de este proyecto/////
por favor ayuda!!!!! colegas informaticos
12:20:19 pm
@benjie: Estás usando una dirección de correo real como remitente y en los encabezados?
Saludos!
1:53:34 am
@Bertha
Desde la que tu quieres enviar.