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
5:15:31 pm
Hola muy buen post funciona de maravilla al principio me daba algunos errores con smtp pero es solo de configurar bien el dns del pc y listo 😀
1:06:19 am
hola, sabes no me funciona el código.. en el miniRelay me hace como que esta enviando pero luego me tira error con algo en relacon al IP. que no esta permitido… sabes que puede ser?
5:45:43 pm
ola muy bueno pero no funciona hahahahahaha
3:38:52 pm
hola.. he seguido todos los pasos y no envia.. sale lo siguiente en la ventana del mini relay
Error Connect timed out.
15:07:48 [4] Conectando con mx4.hotmail.com
15:07:58 [4] Error Connect timed out.
15:07:58 [4] El mensaje de error no ha podido ser enviado. Se queda en la cola
15:07:58 [5] Dominio MX de gmail.com cacheado
15:07:58 [5] Conectando con gmail-smtp-in.l.google.com
15:08:08 [5] Error Connect timed out.
ya no se que hacer!!
6:19:55 pm
Buenísimo el aporte!!!!
10:37:32 am
oye una pregunta este servidor de correos conecta con hotmail?? es q me pone error cuando los va a enviar …..
3:59:34 pm
Feliciddades amigo(a) si funciona me envia el correo con esta version de xampp, pero me me marca un error en header(Local: index.html); en php y en versiones actuales no funciona esta configuracion a que se debe esto??????
11:21:25 am
Thanks
8:46:42 pm
http://loprogramo.blogspot.com/
ahi podemos discutirlo y mejorar entre todos lo mas que se quiere
1:45:22 pm
Solo me funciona unas cuantas veces y luego me sale este error:
12:44:33 [1] Error DY-001 (COL0-MC2-F22) Unfortunately, messages from 190.234.7.225 weren’t sent. Please contact your Internet service provider. You can tell them that Hotmail does not relay dynamically-assigned IP ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
12:44:33 [1] Conectando con mx4.hotmail.com
12:44:34 [1] Error DY-001 (COL0-MC2-F24) Unfortunately, messages from 190.234.7.225 weren’t sent. Please contact your Internet service provider. You can tell them that Hotmail does not relay dynamically-assigned IP ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
12:44:34 [1] Conectando con mx4.hotmail.com
12:44:35 [1] Error DY-001 (COL0-MC2-F24) Unfortunately, messages from 190.234.7.225 weren’t sent. Please contact your Internet service provider. You can tell them that Hotmail does not relay dynamically-assigned IP ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
12:44:35 [1] El mensaje de error no ha podido ser enviado. Se queda en la cola