dominios y alojamiento web en hostalia

Mandar mails desde PHP

16 de noviembre de 2002
Valoración del artículo:
Explicación de la forma de enviar correos desde páginas PHP y ejemplos simples y complejos para realizar la tarea.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Para el envío de correos electrónicos utilizando PHP disponemos de una función bastante potente, incluida en todas las versiones de PHP, sin necesidad de instalar ningún añadido, en contra de lo que ocurría con ASP.

Referencia: En caso de que necesitemos programar el envío de correo electrónico en nuestra página utilizando ASP, también hemos publicado un artículo en DesarrolloWeb.com llamado Mandar mails desde ASP.

En concreto, en PHP disponemos de una función llamada mail() que permite configurar y enviar el mensaje de correo. La función se llama mail() y recibe tres parámetros de manera obligada y otros dos parámetros que podemos colocar opcionalmente. Devuelve true si se envió el mensaje correctamente y false en caso contrario.

Parámetros necesarios en todos los casos

Destinatario: la dirección de correo o direcciones de correo que han de recibir el mensaje. Si incluimos varias direcciones debemos separarlas por una coma.

Asunto: para indicar una cadena de caracteres que queremos que sea el asunto del correo electrónico a enviar.

Cuerpo: el cuerpo del mensaje, lo que queremos que tenga escrito el correo.

Ejemplo de envío de un mail sencillo

<?
mail("pepito@desarrolloweb.com,maria@guiartemultimedia.com","asuntillo","Este es el cuerpo del mensaje")
?>

Parámetros opcionales del envío de correo

Headers: Cabeceras del correo. Datos como la dirección de respuesta, las posibles direcciones que recibirán copia del mensaje, las direcciones que recibirán copia oculta, si el correo está en formato HTML, etc.

Additional_parameters: esta opción no suele utilizarse y, además, sólo está disponible a partir de la versión PHP 4.0.5 y desde PHP 4.2.3 está deshabilitado en modo seguro. Puede usarse para pasar parámetros adicionales al programa configurado para enviar el correo, cuando se manda el mail usando la opción de configuración sendmail_path. Podemos obtener más información en la documentación de PHP para la función mail().

Ejemplo complejo de envío de correo

Vamos a enviar un correo con formato HTML a pepito@desarrolloweb.com, con copia a mariano@desarrolloweb.com y con copia oculta para pepe@pepe.com y juan@juan.com. La dirección de respuesta la configuraremos a maria@desarrolloweb.com.

<?
$destinatario = "pepito@desarrolloweb.com";
$asunto = "Este mensaje es de prueba";
$cuerpo = '
<html>
<head>
   <title>Prueba de correo</title>
</head>
<body>
<h1>Hola amigos!</h1>
<p>
<b>Bienvenidos a mi correo electrónico de prueba</b>. Estoy encantado de tener tantos lectores. Este cuerpo del mensaje es del artículo de envío de mails por PHP. Habría que cambiarlo para poner tu propio cuerpo. Por cierto, cambia también las cabeceras del mensaje.
</p>
</body>
</html>
';

//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

//dirección del remitente
$headers .= "From: Miguel Angel Alvarez <pepito@desarrolloweb.com>\r\n";

//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: mariano@desarrolloweb.com\r\n";

//ruta del mensaje desde origen a destino
$headers .= "Return-path: holahola@desarrolloweb.com\r\n";

//direcciones que recibián copia
$headers .= "Cc: maria@desarrolloweb.com\r\n";

//direcciones que recibirán copia oculta
$headers .= "Bcc: pepe@pepe.com,juan@juan.com\r\n";

mail($destinatario,$asunto,$cuerpo,$headers)
?>

Nota: Antes de poner en marcha el script en vuestro servidor, por favor, cambiar los datos de configuración de las direcciones de correo que van a recibir el mensaje y colocar unas direcciones que sean vuestras y donde podáis comprobar si los mensajes se envían correctamente.

Conclusión y descarga

Pensamos y esperamos que después de este artículo compartáis nuestra opinión, que el envío de mails en PHP es una tarea muy sencilla. Además, es muy de agradecer que todas las versiones de PHP incluyan una función para el envío de mails.

Ponemos a vuestra disposición para la descarga el archivo .php con el código anterior completo para realizar el envío de mails.

Nota: Para el envío de correo mediante PHP es necesario que este disponga de una correcta configuración.

Si nuestro web está en un servidor de un proveedor de hosting seguramente ya hayan configurado PHP para el envío de mails. Si estamos trabajando en un servidor propio, sí tendremos que configurar PHP.

PHP se configura en el archivo php.ini, donde debemos especificar datos como el servidor de correo saliente que debe de utilizar PHP para transferir los mensajes.

Dentro del php.ini, debemos buscar el epígrafe [mail function]. Dependiendo de nuestro sistema deberemos configurar de una manera u otra.

En sistemas Windows encontraremos el php.ini en el directorio windows o dentro de este, en el subdirectorio system32 o similar. En este sistema deberemos indicar el dominio del servidor de smtp, algo como smtp.midominio.com. Si es el ordenador local el que hace de servidor, podremos poner "localhost" como máquina que enviará el correo. También podemos especificar la dirección desde donde queremos que parezca que se envía el mensaje en caso de que no se indique otra durante el envío.

Compartir en redes sociales

Comentarios
Fueron enviados 127 comentarios al artículo
28 comentarios no revisados
99 comentarios revisados:
Por: José Mendoza
28/10/2003
Bueno para los que no pudieron mandar un el email y les salió el siguiente error :

Warning: Failed to Receive in e:\proyecto\correo\enviomail.php on line 129

Pueden bajarse el programita "ninirelay server" que lo pueden descargar de http://netvicious.iespana.es/netvicious/ el cual no tiene mas de 270 Kb y solo lo tienen que ejecutarlo no necesita mas configuración.
Otra cosa en el archivo Php.ini en la sección [mail function] coloquen
SMTP = localhost
sendmail_from = proyectoII@proyecto.com
o cualquier dirección que no sea me@localhost.com de correo, a mi me funciono bastante bien tengo Apache y PHP corriendo en Windows 98.

Espero haber ayudado con algo.
Por: cUk
13/12/2003
oyeahhhhhhhh, rula.
Tengo lo mismo que tú pero en win XP y vá a las mil maravillas. ;)
Por: Sergio Alvarado Hernandez
13/12/2003
yo soy practicamente un novato en esto de la programacion web, pero gracias a sitios como este he encontrado una forma, desde mi punto de vista, muy adecuada para incrementar mis conocimientos de tal programacion en especial en PHP.

Espero algun dia ayudar de la misma forma a los colegas informaticos.

Gracias!!!!!!!!
Por: jr
15/3/2004
a mi me suelta el siguiente error:

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Archivos de programa\Apache Group\Apache2\htdocs\pruebas\mail.php on line 9

ya puse lo de localhost en sendmail y mi direccion de correo. que puede pasar???

RESPUESTA

Este error ocurre cuando PHP no puede conectar con el servidor SMTP que tengas indicado en el PHP.ini. Parece que no puede conectar, por ello te sale el error. Puede ser porque el servidor esté parado o porque no tengas conexión entre la red del servidor de correo y la del servidor web.

Por: mivky
19/3/2004
La verdad jalo de peluche lo unico que no se es si realmente puedo establecer a mi maquina como servidor de correo, como lo configure fue para que usara la direccion del servidor de correo de la red pero de todas formas asi jalo muy bien...
Por: Roberto
28/4/2004
yo una vez que configure php.ini, me fui en winxp a mis conexiones de red y seleccione la conexion a internet, entonces propiedades-opciones avanzadas-configuracion-servicios y active la casilla que dice "Internet Mail Server (SMTP), y solucione mi problema ya puedo usar la funcion mail()!!!
Por: Alonso
10/5/2004
Funciona perfectamente salvo por el detalle de que en las cabeceras sobra el '\r' , ya que no se porqué si lo incluyo no me envía los correos, al quitarlo me ha funcionado correctamente.

Muchas gracias por el artículo y un saludo.
Por: ricardo
08/6/2004
Me funciona perfectamente y es una solucion ideal para los formularios, sin embargo incluso cuando los campos del formulario estan vacios envia el correo, entonces recibo informacion en blanco, me fijé en la funcion "if" y esta bien escrita (me parece).Hay alguna solucion para validar los campos ,de e-mail por ejenplo?¡felicitaciones y gracias!
Por: Alejo
20/6/2004
Hola, muy bueno el script. Yo queria saber si se puede mandar un mail con los headers desde un formulario. Yo uso en el formulario un campo de el nombre del que envia el mensaje, otro de su mail, otro del nombre a quien le envia el mensaje y otro del mail a quien enviarle el mensaje. Yo uso como variables: Nombre del remitente=$tunombre Mail del remitente=$tumail Nombre del receptor=$nombreel Mail del receptor=$mailel
Por: Juan Manuel Oropeza
29/6/2004
A mi tambien me muestra la misma advertencia:

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in \\172.21.6.16\s004\conexun.com.mx\reg.php on line 46

Pero mi problema es que yo pago un servicio de hosting, hay alguna manera de usar esta funcion?? que tengo que configurar? o que otra opcion tengo?? de antemano gracias.

Respuesta

Si tu preveedor de alojamiento no tiene configurado el php.ini para poder enviar correo deberias informarles de la situacion y solicitarles q habiliten un servidor de correo smtp en la configuración de php.

Por: agvabraham
08/7/2004
Ok... veo que la mayoria lo utiliza bajo windows... pero como lo configuro para poder enviar los correos desde un servidor propio montado en Linux Red Hat 8.0,funcionando con servidor DNS (www.midominio.com)... espero puedan orientarme...gracias
Por: Sebastián López Castro
06/10/2004
Posible solución al problema de Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay.

Esta solución es válida para Windows XP PRO, usando el servidor SMTP que inluye el IIS.

Si hemos configurado bien el PHP.INI, pero el error persiste, probablemente se debe a que, por defecto, la opción de RELAY (Retransmisión en castellano) se encuentra desactivada. Para activarla y permitir la salida de nuestros emails desde PHP deberemos ir a Panel de Control-Herramientas administrativas- Servicios de Internet Information Server, y una vez dentro seleccionar el servidor virtual de SMTP. Pulsamos el botón Propiedades en la barra de botones y seleccionamos la pestaña "Acceso". En la parte baja de dicha pestaña encontramos un botón que pone "Retransmisión", lo pulsamos y, en la ventana que se abre elegimos la opción "Sólo los de la lista siguiente", pulsamos el botón "Agregar" e introducimos la IP de nuestro servidor (ejemplo: 192.168.0.15). Así estaremos autorizando a nuestra máquina servidora a enviar correos SMTP al exterior.

Espero que haber ayudado. Esta solución la he encontrado en una página en inglés, cuya dirección es la siguiente. Saludos y gracias a todos porque entre todos creamos una gran comunidad de conocimiento.

http://forums.devshed.com/archive/t-171453

Por: Lisalex
27/10/2004
Hola a todos!! me gusta muchisimo esta página y me ha ayudado muchisimo a lo largo de mi larga dedicacion a las paginas web.... pero una vez hechos los elogios: Este escript no me funciona :'( y lo peor es que no me da ningún error. pongo bien la direccion de correo y entiendo todo. tengo contratado un hosting con php y imagino que esta configurado, mas q nada porq no me da error.Muchisimas gracias por atenderme!
Por: ela13
01/12/2004
la funcion mail anda bárbaro pero mi problema está en el tiempo que tarda en ejecutarla, realmente se queda un buen rato hasta que finalmente envía el email..¿por qué pude ser? tiene que ver con la configuracion en el servidor? gracias

RESPUESTA

Yo creo que tiene mucho que ver con el servidor de correo de mails. La página no se termina de generar hasta que no se envía el correo electrónico.

Por: Rodrigo Farias
15/12/2004
a mi me arroja el siguiente error:

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\htdocs\test\contresp.php on line 7

y el codigo que tengo es este:

mail($para,$asunto,$mensaje,"FROM:".$de);

Lo he probado con espacio delante y detras de los dos puntos de form, usando from con mayuscula y solo la "F"... pero me sigue rrojando ese error.
¿Como lo puedo solucionar?
Por: Sephia
22/12/2004
Bien el error de sendmail_from por el php.ini es este

teneis que ponerlo asin y fijaros bien en las ;

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
sendmail_from = webmaster@tusitio.com
delante de sendmail_fron hay que kitar el ; que esta puesto si veis que no chifla mirar las extensiones que hay alguna que tiene que estar sin los ; por que si lo tuviera no ejecuta
instalar como progrma de smtp el QK SMTP SERVER
UN SALUDO ESPERO QUE SIRVA DE ALGO
Por: SEPHIA
22/12/2004
pongo aqui las extensiones que tengo yo activas
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
;extension=php_curl.dll
;extension=php_db.dll
;extension=php_dba.dll
extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
extension=php_zip.dll
Por: Juan Iniestra
18/1/2005
Resultado !!Perfecto ¡¡ gracias por el ejemplo me sirvio muchisimo
Por: FCHip
19/1/2005
Bueno, a mi la verdad es que no me furrula. Tengo un servidor debian linux y tengo como MTA Exim4. Se podría postear un howto sobre como configurar este servidor para que funcionara. Saludos a todos.
Por: Omar Hernández
12/2/2005
Funciona de maravilla mandando correos en html, en todos los correos que he mandado, de dominios propios y de servicio gratuito como yahoo, pero no funciona para correos de hotmail, ¿por que?, ayuuuda?, solo funciona con texto simple, sin html.
Por: willyfog
24/3/2005
Es que no hay nadie que use linux?? Cada vez vamos a peor. Si alguien que lea este artículo tiene un servidor linux me gustaría saber si ha probado esta función. Yo he probado con sendmail y con Exim y no ha habido manera.

Gracias.
Por: Leandro
21/4/2005
No comprendi si el codigo que va entre los eso va en un archivo aparte p bien metido en medio del codigo de la pagina donde se encuentra el formulario donde nos envian el mail.

RESPUESTA

Ese código PHP va dentro de la pagina donde se encuentra el formulario que quieres enviar.
Por: Maeve
26/4/2005
El servidor mio tiene Linux y el script funciona sin un problema
Por: motaro
17/5/2005
ok a mi si me interesa saber esto de envio de mail ya que lo necesito para un proyecto y la verdad tengo un programa que me instalo el apache php y mysql descarge el codigo pero me marca error en la funcion de mail($destinatario,$asunto,$cuerpo,$headers) y no se a que se debe ese error de hecho cuando corro la pagina aparece este mensaje Warning: Unknown error in C:\apache\htdocs\mail2\mail.php on line 43 y en la linea 43 esta la funcion de mail() que hago
Por: Xose
19/5/2005
Hola. Antes me daba el error · Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay. Lo arreglé configurando php.ini y la pestaña "retransmision". En cuanto hice esas dos cosas la funcion mail me devuelve true, y no me da ningun tipo de error, pero a los detinatarios no les llega nada!!!!. Me podriais ayudar??? gracias.
Por: lionn
10/6/2005
si a alguno le aparecio este error Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing es porque el php.ini no pudo ser encontrado por el apache, se puede solucionar poniendo el php.ini en la carpeta donde se encuentra el apache.exe
Por: monica ni
22/7/2005
yo no se nada de computacion menos de enviar mails pero su pagina es muy clara y facil de entender
Por: Alex
03/8/2005
Como hacer para que al enviar el formulario esa misma persona reciba un correo sabiendo que su petición o envío de formulario a llegado, vi un script por ahí que puso una muchacha pero veo que hay que poner el correo del usuario que es el que escribe pero quien sabe cual es el correo del usuario sí puede ser cualquiera?
Por: lucy ayarde
09/8/2005
es un sitio muy pero muy interesante.. gracias por los consejos y codigos que me parece genial.. pero anda revisa todos tus comentarios pendientes un abrazo

Respuesta:
Gracias por tu comentario, estamos revisando los comentarios en la medida de lo posible, son muchas las tareas por realizar y no siempre está todo cómo nos gustaría.
Por: Jorge Molina
28/8/2005
Hay un error en el codigo: luego de la linea que dice
//ruta del mensaje desde origen a destino
$headers .= "Return-path: holahola@desarrolloweb.com\r\n"

falta un punto y coma al final para cerrar la instrucción.

Respuesta:
Ya esta corregido, muchas gracias.
Por: Jorge
14/9/2005
Les comento mi solución sobre un MicroSoft W2k y un NT:

primero. Mencionarles que en el Servidor (que tiene NT) instalé IIS y sobre él, PHP.

Dentro del php.ini configuré :
SMTP="Olimpo", que es el nombre de mi servidor.

En IIS, dentro de las propiedades de mi Sitio SMTP por defecto, en "Directory Security" habilité la opción "Allowed To Relay"

Y eso solucionó todos los problemas que tenía.

Espero que mi experiencia les sirva de algo.
Saludos desde Chile.
Por: Greco
07/10/2005
Lo probe y funciona exelente. Copie el codigo y lo pegue en una pagina que subi en mi servidor gratuito www.red-futura.net y luego lo ejecute y funciono super bien salvo un pequeño detalle que seguramente no es del scrip sino mas bien de gmail, la cosa es que al recibir el email en una cuenta de GMAIL la direccion de "responder a" es el mismo remitente mientras que al revisarlo en una cuenta de hotmail el "responder a" es exactamente el que yo le habia puesto que fuese y no el remitente, se entiende?? nada mas.
Por: Julia Bebop
14/10/2005
Hola amigos.

Bien. yo me he leido una gran cantidad de tutoriales y pues de todos se van formando soluciones para este problema en especifico: manda correo por PHP.. nada facil.

Y NADA FACIL!!! realmente hay que estar sentado todo el dia como zoombie tratando de comprender muchas cosas., "que si el php.ini,, que ahora es rosa muevelo hacia la derecha, ah! pero le cambiaste el comentario, muevelo a la izquierda,,etc..."

Lei en un foro, que linux no tiene este problema y muchos otros. Realmente me gustaria haber aprendido con linux..pero en fin..Nunca es tarde! algun dia me aventare!

Pobres de nosotros los mortales windows. T..T jeje. Lo malo es que nosotros usuarios de windows, creemos que el simple hecho de instalar,,mmmm.. apache, ya sirve solo, como un video juego..jeje,, igual php, mysql, mysqladmin, myflashadmin...etc!!..

Ese es el problema que veo.. En fin amigos..no nos queda mas que seguir trabajando para solucionar este y otros problemas relacionados a la internet, llamese servidores http, servidores dns, pop3,,etc, etc..

Almenos estamos debajo de los usuarios linux :D., y no somos del monton que se compra una pc por mero status quo.

Esta es solo una opinion para darles animo, a aquellos compañeros de desveladas, investigadores, questionadores, etc..para que no se den por vencidos y sigan, hasta encontrar la solucion.

Saludos!
Por: Juan
24/4/2006
Para todos aquellos que usan winxp y tienen instalado ele easy php , instalense este programita 1st SMTP Server aqui les paso el link
http://1st-smtp-server.uptodown.com/
se instala y configura atomaticamente como un servidor de correo smtp (solo permitan al firewall de windows desbloquear el servicio cuando se los pida) y eso es todo. Funciona bien aunque los correos se reciben con cierta demora tener un poco de paciencia , aun no se la causa de ello pero de que llegan ...llegan, otra cosa a veces en hotmail llegan como correo no deseado revisen alli.

Saludos desde Peru
Por: numa
12/5/2006
señores he intentado por todos los medios y comentarios de esta sección enviar con este formulario y siempre me sale el error Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in ..... on line 41

por ejemplo , necesito saber si necesito instalar un servidor de correo local oporque ninguna correo me llega a ningún sitio y tengo como cinco cuentas. No se si tewngo que configurar el php adaptado a un correo de otro servidor .

RESPUESTA

Veo que el error está bien claro. Te falta indicar en el PHP.ini tu correo electrónico en el campo sendmail_from, para que PHP sepa el correo a través del que se envían los email, si es que no se especifica nada en la cabecera del mensaje, en el campo From:.

Así que tienes dos opciones. Una es especificar el From: al crear las cabeceras del mensaje, o bien editar el PHP.ini para incluir una cuenta por defecto y asi no tener que indicar esa cuenta en cada mensaje que envías.

En el artículo Mandar mails desde PHP tienes ejemplos sobre como especificar un from en las cabeceras del mensaje y así evitar el error que te sale.

Por: Joel
18/8/2006
Para empezar, la función mail() trabaja perfectamente, pero antes de eso ya sean usuarios de windows o Linux, deben tener configurado un servidor de correo (SMTP). Tanto Linux como Wndows poseen ese servicio, solo deben activarlo.

Si no desean mover el código PHP.ini, en su página web coloquen las siguientes líneas:

ini_set('SMTP',"10.28.5.133");
ini_set('smtp_port','25');
mail($email,
$subject, $newmessage, $headers) or die("Lo sentimos, debes configurar un servidor de correo (SMTP) primero!");
Por: Joel
18/8/2006
Para empezar, la función mail() trabaja perfectamente, pero antes de eso ya sean usuarios de windows o Linux, deben tener configurado un servidor de correo (SMTP). Tanto Linux como Wndows poseen ese servicio, solo deben activarlo.

Si no desean mover el código PHP.ini, en su página web coloquen las siguientes líneas:

ini_set('SMTP',"10.28.5.133");
ini_set('smtp_port','25');
mail($email,
$subject, $newmessage, $headers) or die("Lo sentimos, debes configurar un servidor de correo (SMTP) primero!");
Por: Mario
19/12/2006
Si tienen la página web alojada en un servidor, pues hagan una consulta al administrador, para que les digan cómo configurar PHP para el envío de correo. Algunos proveedores tienen funciones seguras para envío de correo, coun autenticación de PHP en el servidor de envío y todo.

Ahora bien, si tienen problemas para el envío de email en su propio servidor local, instálense un servidor SMTP en su computador y configuren el servidor SMTP de PHP en php.ini. Pero tampoco gastaría mucho tiempo en esto porque no te aseguran que esos mensajes vayan a llegar a los destinatarios. Es decir, el envío de correos desde máquinas locales no es fiable, muchos servidores de correo los rechazan.
Por: Jesús
27/3/2007
LO HE CONSEGUIDO. OS EXPLICO MIS PASOS PARA LOGRARLO. SIENTO NO PODER PONER IMAGENES:

Para que esto funcione, necesitamos tener activado un servidor de correo en el PC. Y yo no lo tenía.
Para habilitar el correo local me fui a servicios de Internet Server (primero lo arranqué) pero solo el Servidor SMTP

Antes de arrancarlo, tuve que habilitar (no arrancar) administración de IIS, porque yo lo tenía deshabilitado(Uso solo apache).

Primer Error: sendmail_from not set php.ini custom header missing

Primero cogí el php.ini (los dos el del php y el de apache/bin) y poner esto mas ó menos

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = miemail@telefonica.net


En miemail@telefonica.net poner vuestro correo
es el usuario que se mostrará al destinatario que llegue el correo
Poner el que corresponda.

El segundo Error: mail(): SMTP server response: 550 5.7.1 Unable to relay.

Ahora dentro del Panel de Control - Herramientas Administrativas
entré en Servicios en Internet Información Server:

Y dentro de este me fui a Servidor Virtual SMTP, botón derecho y propiedades.

Ahora nos vamos a la pestaña Acceso, botón Retransmisión
y marco solo los de la lista siguiente.
Y le agrego mi ip.

Al principio solo puse la IP 172.16.0.5 (la mía) pero no funcionaba, así que le añadí la 127.0.0.1 y funciona.
Tardó un poco (2-3 minutos) pero el correo llegó.

Bueno espero se de utilidad al alguno.
Saludos
Por: JoG
29/3/2007
Excelente! solamente hice las modificaciones de las direcciones, tal y como se indica en el articulo, y fuciona de maravilla.
Muchisimas gracias!
Por: Ramiro Paz
06/7/2007
Hola amigos este artículo me funciona perfectamente con los correos Yahoo y Hotmail, pero con Gmail, me sale el código directamente en HTML alguien sabe porque?, saludos
Por: Jonathan Korn
10/7/2007
Bello el codigo, amigos. Funcionó a la perfeccion y en 5 minutos ya tengo algo que había querido implementar hace mucho tiempo.

Gracias totales!!!!
Por: Jonatan
17/10/2007
Excelente la aclaracion en la configuracion del IIS, ese detalle es muy importante, les agradezco la colaboracion.
Por: isht4r
14/10/2008
a mi me funciono de maravilla en la primera prueba, eso si monte todo en prueba.php y lo subí al servidor con el respectivo cambio de dir de correo y a la primera me envió el correo de prueba a mi email :)
Por: Talia
23/11/2008
Yo no tengo problemas con la función mail de php, pero en cambio al habilitar las conexiones y retransmisiones en las propiedades del SMTP en IIS resulta que la bandeja de salida se llena inmediatamente de spam, que aprovecha que dejo habilitado el SMTP totalmente para enviar basura, si alguien puede ayudarme como configurar las conexiones y retransmisión en SMTP en IIS (Connection and Relay), muchas gracias por la ayuda desde ya,
Por: FEF
23/12/2008
El codigo me funciona perfectamente, envio todos los mails que especifico, el problema es que no carga la imagen.
la pagina que estoy enviando es una sola imagen con un solo link, asi lo hice para probarlo, pero al enviar llega el espacio vacio del tamano de la imagen en blanco. Alquien me puede decir por que?
Por: mariano
26/12/2008
Tengo instalado en mi pc hmailserver.Configure los php.ini y manda los mail pero estos no llegan probe con hotmail y con yahoo sin exito. Ayuda plis.
Por: Miriam
18/1/2009
Mil gracias por el articulo, es muy bueno, sencillo y facil de utilizar sin tanto rollo de explicaciones gracias.
Por: Rayko
29/1/2009
Interesante. Lo unico que puedo decir del articulo en si, es que no esta clara la necesidad del servidor SMTP, ya que algunos tuvieron dificultades. Otros afortunados ya tenian un servidor instalado sin saberlo.
Ahora tengo una duda, si tengo al alcance de mi mano un servidor SMTP, pero que requiere una configuracion especial, como encriptacion por SSL y autenticacion, se puede configurar eso en el php.ini o de alguna forma? Y otra cosa relacionada con mails, algun nombre de servidor mail que sea bueno y completo?
Por: DDARTHP
16/2/2009
Me salo de Pelos!!!!! :)

Tenia problemas con el envio y lo que pasa es que no tenia activado el servidor de correo en mi maquina.

Les comento asi lo solucione, Tengo Ubuntu Intrepid Ibex y LAMP, bueno la cuestion es que hice un

$ sudo apt-get install sendmail

luego de que se instalo y/o actualizo,

$ cd /usr/sbin

y ahi ejecute

$ sudo sendmailconfig y le di si a todo pues resulta que tal ves estaba instalado pero mal configurado o quien sabe pero se restauro la instalacion que estaba ya por defecto y Listo!!!
PS: no se si tengan que incluir los repositorios restrictivos (eso es si no les instala), para eso se van a SISTEMA>ADMINISTRACION>GESTOR DE PAQUETES SYNAPTIC ahi buscan configuracion y luego repositorios y seleccionan universe y multiverse cierran y luego actualizan la lista de paquetes, ahora si pueden instalar sendmail

ahora
Minirelay
Por: Pedro
13/4/2009
Hola a todos, si tenia el problema al enviar por que no tenia habilitado el puerto 25 para enviar correos, utilize el minirelay y ya me funciona, pero no me envia el correo por que dice que no puede decifrar el dns, muchas gracias

Pedro Perez
http://www.amicolombia.com
esta chido pero..
Por: Nirvana
16/4/2009
hola a todos, felicidades por la comunidad esta muy buena la info que roola por aka.. les cuento el problema...despues de andar rolando por un chorro de foros recopilando info que si el amtp que si set_ini que si iss no eh podido mandar un mail despues de hacer de todo tenia un error que marcaba que no tenia configurado el smtp el mismo que los compañeros de arriba marcaban... instale el iis de windows xp pro y lo configure como indican mas arriba ya no me manda ningun error el php inccluso en el if de verificacion de mail(bla,bla,bla,bla) devuelve true y me dice mensaje enviado pero a mis destinatarios no les llega nadaa, que creen que pueda ser?
olvide....
Por: Nirvana
16/4/2009
olvide comentarles utilizo win xp pro
el servidor es wamp e instale el iis
me da un error
Por: oscar maricio gonzalez
19/4/2009
tengo en php.ini lo siguiente:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = oscarydey2002@hotmail.com

y aun asi no me funciona el codigo que podra ser;
tengo winxp home edition
Error con el miRelay
Por: Christian
22/4/2009
Ya configure el PHP.ini pero sigue mandando el mismo error, esta es mi configuracion:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = proyectoII@proyecto.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =


y mi funcion mail es

<?php

mail("linck_4@hotmail.com, christian.perez@codes.com.mx","Buenas Calificaciones","Este es el cuerpo del mensaje");

?>

Y lo que manda el miniRelay es:

11:36:12 Escuchando en 127.0.0.1 (Puerto 25)
11:38:29 Comando: MAIL FROM <you@yourdomain>
11:38:29 Comando: RCPT TO <linck_4@hotmail.com>
11:38:29 Comando: RCPT TO <christian.perez@codes.com.mx>
11:38:29 [1] Resolviendo dominio MX de hotmail.com
11:38:29 [2] Resolviendo dominio MX de codes.com.mx
11:38:29 [1] Conectando con mx1.hotmail.com
11:38:29 [2] Conectando con ASPMX.L.GOOGLE.COM
11:38:51 [1] Error Connect timed out.
11:38:51 [1] Conectando con mx1.hotmail.com
11:38:51 [2] Error Connect timed out.

Que podra ser, Ayudenme, porfa !!!!

marisa
No me funciona!
10/5/2009
Pues a mi me envia el correo pero veo el código tal cual..Que puedo estar haciendo mal?
Gracias
Por: carfredy
09/6/2009
La solucion que presenta nuestro amigo Jesus es la más apropiada.

Sos un monstruo Jesus......Gracias
error
Por: andres
18/6/2009
intento hacer el codigo pero me sale este error
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:wampwwwProyectFormulariophpdesigner_output_tmp.php on line 37

ya no se q hacer, intento modificar el smtp en servicios pero no me aparece internet configuracion de server, no se si es por algun permiso, o porq esta en red
no me salen los mails
Por: juan
08/7/2009
mi problema es que
yo ejecuto el mimiRElay y despues trato de enviar el mail desde php pero
el minirealy me dice que Error al resolver el dominio yahoo.com: Socket Error # 10054
¿como puedo enviar mails desde php?
Problemas con enviar mail desde php
Por: Joseph
15/7/2009
Hola a todos, espero me puedan ayudar. Tengo dos servidores IIS, uno es de correos (es el que tiene funcionando el SMTP y se llama por decir algo "servidor1") y otro es donde tengo instalado y configurado para que funcione el PHP5 (lo llamaremos "servidor2"). Quiero mandar correos usando la phpmailer. El problema es que marca un error que dice:
"Language string failed to load: connect_host"

El archivo php.ini (me supongo debe ser el que esta en el servidor2) lo tengo así:

[mail function]
; For Win32 only.
SMTP = servidor1.escuela.edu.mx
smtp_port = 25

; For Win32 only.
;sendmail_from = cuenta@escuela.edu.mx

Y en mi pagina php tengo:

<?php

if(isset($_POST["Submit"])){

require_once("lib/phpmailer/class.phpmailer.php");

$mail = new PHPMailer();
$mail->PluginDir = "lib/phpmailer/";

$mail->Mailer = "smtp";

$mail->Host = "servidor1.escuela.edu.mx"; // SMTP servers

$mail->SMTPAuth = true;
$mail->Username = "cuenta@escuela.edu.mx";
$mail->Password = "password";

$mail->From = "cuenta@escuela.edu.mx";
$mail->FromName = "Mi nombre";

$mail->Timeout = 30;

$mail->AddAddress("otra_cuenta@hotmail.com");

$mail->Subject = "Mi asunto";

$mail->Body = '<h1>Este es el cuerpo del mensaje</h1>';


// Send
if(!$mail->Send())
echo "No se pudo enviar el correo electronico!<br><br>".$mail->ErrorInfo;
else
echo "El correo se envio correctamente!";
}
?>

Bueno, esta bastante largo el comentario pero es para que tengan todo claro y me puedan ayudar mejor.

Saludos y gracias por su atencion!!!

diablit...
Problema al enviar mail desde php
15/7/2009
Hola a todos, espero me puedan ayudar. Tengo dos servidores IIS, uno es de correos (es el que tiene funcionando el SMTP y se llama por decir algo "servidor1") y otro es donde tengo instalado y configurado para que funcione el PHP5 (lo llamaremos "servidor2"). Quiero mandar correos usando la phpmailer. El problema es que marca un error que dice:
"Language string failed to load: connect_host"

El archivo php.ini (me supongo debe ser el que esta en el servidor2) lo tengo así:

[mail function]
; For Win32 only.
SMTP = servidor1.escuela.edu.mx
smtp_port = 25

; For Win32 only.
;sendmail_from = cuenta@escuela.edu.mx

Y en mi pagina php tengo:

<?php

if(isset($_POST["Submit"])){

require_once("lib/phpmailer/class.phpmailer.php");

$mail = new PHPMailer();
$mail->PluginDir = "lib/phpmailer/";

$mail->Mailer = "smtp";

$mail->Host = "servidor1.escuela.edu.mx"; // SMTP servers

$mail->SMTPAuth = true;
$mail->Username = "cuenta@escuela.edu.mx";
$mail->Password = "password";

$mail->From = "cuenta@escuela.edu.mx";
$mail->FromName = "Mi nombre";

$mail->Timeout = 30;

$mail->AddAddress("otra_cuenta@hotmail.com");

$mail->Subject = "Mi asunto";

$mail->Body = '<h1>Este es el cuerpo del mensaje</h1>';

// Send
if(!$mail->Send())
echo "No se pudo enviar el correo electronico!<br><br>".$mail->ErrorInfo;
else
echo "El correo se envio correctamente!";
}
?>

Bueno, esta bastante largo el comentario pero es para que tengan todo claro y me puedan ayudar mejor.

Saludos y gracias por su atencion!!!
envio de link
Por: jose luis
25/7/2009
hola que tal, tengo una duda al enviar correos con php si me llega y todo, pero cuando leo mi correo no me toma el texto html, de hecho hago un <a href> ya que necesito enviar links, pero no me los toma en cuanta, que peudo hacer, no me toma mi texto html

ximeti
AYUDAAAAAAAAAAAAAAA
27/7/2009
soy denmasiado burro y como hago ejecutar este codigo, donde lo coloco, como lo envio, lo ajdunto?, entiendo las modificacione s que hacer , pero solo quiero enviar una imagen y nada mas, y claro quese habra sola.

S.O.S
mails desde PHP
Por: Darío
27/7/2009
Hola Miguel( o alguien que lo pueda responder, plisssss), con este metodo aparentemente sencillo para quien lo domina, me estafaron, mi pregunta es si es posible saber la Ip del sujeto, si por ej. te envio una cabecera completa del mail ...? Slds.
a mi no me va ...
Por: jnric
07/8/2009
Hey, enhorabuena y gracias por todos estos tutoriales. Sin embargo no consigo que vaya..

He pegado tal cual este código [" mail("jnric@hotmail.com","Prueba","A ver si llega","From: Blog PepeAlive! <pepealive@idoo.com>"); "] ya que otro código más complicado que obtenía las direcciones de una base de datos mysql no me funcionaba.

En ambos casos el resultado es el mismo: en teoría el mensaje se envía porque mail() me devuelve un true, no me da ningun error en pantalla, almenos que yo vea, pero no me llega ningun mail a la dirección que he puesto !!!
funcion mail() de php
Por: cce
21/8/2009
hice todo lo q muchos hicieron para hacer funcionar esta funcion y no me funciona. Lo q no encuentro es alguna opcion dentro de Servicios respecto de servidor SMTP o similar, tengo windows xp 2002 service pack2. Desabilite momentaneamente el firewall y antivirus. Tengo un servidor smtp Ironwall servidor web v7.41 estable....me sigue daliendo el error:
Warning: mail() [function.mail]: Failed to connect to mailserver at "10.0.0.10" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:Servidormail.php on line 17

Fatal error: Maximum execution time of 30 seconds exceeded in C:Servidormail.php on line 19
CUalquier ayuda me vendria de 10z..saludos y gracias por el espacio.-

Ikantal...
Problema con el envio de mail desde php
07/9/2009
Que tal compañero del foro, asi como dice el asunto del comentario, aun continuo con el problema al enviar el mail desde mi pagina, me sigue saliendo este error=Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:AppServwwwscesacontactar.php on line 45, el detalla esta en que ya fui al archivo php.ini, y los valores estan bien, incluso fui a Panel de ControlFirewallOpciones avanzadas y en la parte de conexion de area local, me fui a su configuración y en la parte de servios active Internet Mail Server, en el cual sale el mismo numero de puerto que esta habilitado en el php.ini que es el 25, pero aun asi me sigue marcando el dichoso error, alguien sabe a que se deba??
hola, como puedo evitar que el mail que envio llegue como correo no deseado
Por: gerardo
05/11/2009
Hola ya me funciona todo bien ya se envia los mails
ahora el unico problema es como puedo evitar que los correos que envio
desde el script no sean considerados spam

saludos
Configurar php.ini
Por: carlos
02/12/2009
Aunque esta claro el Script tengo dudas de como configurar el php.ini. Ahorita lo tengo asi:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 80

; For Win32 only.
sendmail_from = me@example.com

es correcta mi configuracion? Porque lo que me manda la pagina web como error es:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:wampwwwPricorreo-2.php on line 45

Pero el puerto ya es el 80. Qué pasa?

ivt
envio de mail con php
08/12/2009
HOLA necesito urgente saber como enviar mails con lenguaje php...necesito el archivo html, y el php para ponerlo en mi sistema de programacion que estoy realizando....porfa ayudaaaaaa
error en cabecera
Por: Alonso
11/12/2009
Ejecuté la funcion para enviar emails con PHP y funciono de mil maravillas, pero se me presento un inconveniente, en el resultado final, osea en el correo que recepciona el destinatario... especificamente en la cabecera donde aparece la dirección del remitente, osea, sale lo siguiente

"DE: Apache (apache@ueuo-freewebhostingarea-com.ueuo.com) en nombre de Juan Perez (correo_remitente@hotmail.com)"

cuando solo debería salir:

"DE: Juan Perez (correo_remitente@hotmail.com)"

Es decir la cuenta de correo que recepciona el mensaje está IDENTIFICANDO el servidor de correo que remite el mensaje y la idea es que NO suceda esto.

Si alguien sabe como solucionar este error a través del código fuente, porfavor haganme llegar la solucion a mi correo kolayam@yahoo.com... necesito infinitamente toda la ayuda que se pueda. POR FAVOR!!!!!!

Saludos

Alonso
Error al enviar un email con la funcion mail()
Por: Jesus Astolfo
11/12/2009
Todo esta muy claro, pero al probar me manda el siguiente error:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for astolfo94@hotmail.com in C:apachefriendsxampphtdocsemail.phtml on line 16

Como lo corrijo????

Gracias de antemano por su atencion....Saludos.
Solicitar apoyo
Por: astolfo
12/12/2009
El artículo esta fabuloso, muy bien, felicidades; Segui todaslas indicaciones y al correr mi programa no me manda ningun error solo que no me envía el mensaje al destinatario....que puede ser???

De antemano les doy las gracias por su atencion...Saludos.

P.D. En caso de alguna sugerencia les agradeceria mucho me la enviaran por mi correo: astolfo94@hotmail.com
no me funciona
Por: dreik
30/1/2010
tengo istalado el wamp en guindous y me sale este error

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:PROGRAMERSwampwww aller phpe-mail.php on line 37

mi php.ini esta asi
[mail function]
; For Win32 only.
; http://localhost
SMTP = localhost
; http://localhost
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = dreik@gmail.com

y ya habilite el firewall para SMTP primeto le puse localhost y ahora prove con mi IP pero igual sigue saliendo el mismo error
alguien podria ayudarme
Como visualizo el correo
Por: ambar
15/2/2010
Hola a todos!!! Las instrucciones me funciona perfecto mi único inconveniente es que no se visualiza de manera correcta el correo que le llega a mis destinatarios me refiero a los acentos y caracteres especiales, a pesar de que ya le introduje la instruccion utf-8 en el header para enviar
$header .= 'Content-Type: text/html; charset=UTF-8';
Asi que no se porque no se puede ver el mensaje completo
Problemas enviando mails solucionado
Por: Nadia
26/2/2010
Tenia problemas para enviar correos trabajo con centos aparentemente ya estaba todo bien al configurar el php.ini co respecto a la funcion mail y despues de tanto revisar me di cuenta que solo faltaba iniciar el servicio sendmail,

service sendmail start, por si les sirve este dato se los paso.
Hay alguna forma de saber si el mail fue recibido?
02/3/2010
Es decir, si el mail se envía a una lista de distribución. y algunas de las direcciones no existen más, hay alguna foprma de saberlo para darle de baja en la base de mails?
Enviar correos en formato html
Por: Hector Valladolid
22/3/2010
Hola, tengo un problemilla. Despues de varios días, he conseguido enviar correos por medio de osCommerce a los "clientes" (de momento son clientes de prueba, en cuentas mías de hotmail), pero no consigo que se envíen en formato html. Es decir, yo escribo el código, y para probar algo sencillito, sólo con un color de fondo, tamaño de fuente, y un enlace a una imagen que está en mi servidor, pero no hay manera.
El servidor es un equipo con XAMPP en mi casa, y el de correo es mailenable, montado en el mismo equipo. Los correos se envian con éxito, tanto por medio de sendmail, como por el método smtp, ambas cosas configuradas en el panel de osCommerce.
Mi pregunta es que, si como imagino, tengo que configurar algo en sendmail o en php.ini, de manera que desde esa cuenta SIEMPRE se envien los correos en formato html, o es cosa del mailenable.
Muchas gracias por adelantado, es un tema que me está quitando horas de sueño...
ya quedó desactualizado...¿Que otra cosa haY?
31/3/2010
Hola, pueden decirme que otra forma hay esta ya no sirve. Esta forma no oculta la IP del servidor, para que spamcoop, barracuda y otros no te detecten. Es más el mismo servidor que contratastes te bloquea..

A ver genios si piensan en algo mejor, que mis newsletters ya no salen.
mia_web@ h o t m a i l . c o m
envia email con PHP
Por: kovy
07/4/2010
agregue el codigo pero no lo manda. se queda pensando y en el servidor me dice que no encontro el archivo "envia_form_php.php". Tengo mi pagina con un proveedor de host. Alguna idea de que puedo probar? puebo preguntar al proveedor, pero la verdad no se que pedirle o preguntarle

ovf_sf
Como incluyo imagenes
09/4/2010
Espero todavia revicen estos comentarios, me gustaria saber como puedo agregar imagenes a los correos que envio, gracias.
todo bien
12/4/2010
todo bien pero algunos comentarios me incomodan. Por mas que algunos son viejos me molestan, yo recuerdo que investigaba un poco antes de preguntar cosas como los que dicen :

"hola necesito que me envien el html y el php, ademas quiero que puedo enviar desde ese codigo miles de mail, y que tengo que configurar, ademas que envie imagenes y sonido y me reenvie una tarjeta postl a mi correo, con muchos colores y que que sea linda, asi se lo muestro a mi mama cada vez que alguien se registra en mi pagina www.quelosdemasprogramenpormiasinoinvestigonada.com, y si no me anda que me de la direccion de correo de la persona que lo hizo asi le mando un mail para que me lo arregle magicamente , pero sinque tenga que darle tanta info, porque no confio, por favor mandenmelo a mi correo soyunvivobarbaro@hotmail.com lo antes posible, ES URGENTEEEEEEEEE, AYUDA PORFAAAAAAAAA"


por mas que se trate de ayudar, ser colaborativo, esos comentarios me molestan y mucho
mandar email por php
Por: cristian
22/4/2010
a mi me costo harto dar con la solucion del problema de los email revisar una y mil veces el php.ini la configuracion del servidor de correo y nada siempre el mismo error pero al fin lo encontre simplemente faltaba @ antes de la funcion mail osea @mail($direccion,$cabecera,$texto) si a alguien le sirve mi pequeña ayuda que lo disfruten y saludos

jaor03
Algo que no entiendo
20/5/2010
una pregunta.. estoy interesado en aprender todo esto pero algo no entiendo..
http://www.desarrolloweb.com/articulos/1048.php...este articulo cuando lo uso como php se deberia llamar "envia_form_php.php".. i el q nos muestran arriba..? es l q se deberiia llamar.. "HTTP_POST_VARS.php" p q.. no entender zorri al ignorancia. gracias por las respuestas de antemano
Envio de mensajes a través de scrit
Por: Abel
10/6/2010
Te expongo mi caso:

Cada hora tengo que hacer el envío de correos entre dos plataformas con distintos dominios, una está en .net y la otra en .es.
El código de tu scrit lo entiendo casi al completo lo que me pierde es la siguiente linea:

/ruta del mensaje desde origen a destino
$headers .= "Return-path: holahola@desarrolloweb.com ";

en mi caso que tendría que poner. Si lo envio desde la plataforma .net a la .es, en la línea anterior tengo que poner la durección de la plataforma desde que estoy enviando el mensaje.

Otra duda puedo programar el envío de los mensajes a las dos plataformas desde el mismo scrit o los tengo que hacer de manera independiente.

La verdad que en la programación de scrit estoy algo pegado y mira que son sencillos, pues nunca me he enterado.

¿Se puede programar el intervalo horario?, para que se envíen cada hora.

De antemano gracias, y haber si me puedes hechar un cable para realizar dicha tarea, y no tener que estar pendiente del reloj para que no se me pase el envio de los mensajes.
Prueba del Codigo
Por: Alvaro
28/7/2010
Tu codigo funciona perfecto en mi servidor,
Los unicos cambios como eran de esperarar, era la personalizacion
para mi sitio
Me fue de mucha ayuda tu aporte.

Gracias.!!!
Buena información
14/8/2010
Gracias por el articulo, me sirvió de mucho.
Cual es la estructura adecuada?
01/10/2010
Estimados(as): Tengo una consulta. Actualmente me encuentro creando un formulario bastante sencillo con simples datos para enviar a una cuenta de correo de la empresa.

El formulario tiene los campos 'name', 'email', 'asunto' y 'comments'. Realmente sencillo. Y el script php sería asi:

<?php
$asunto = $_POST['asunto'];
$cuerpo = $_POST['comments'];

//para el envío en formato HTML
$headers = "MIME-Version: 1.0 ";
$headers .= "Content-type: text/html; charset=iso-8859-1 ";

//dirección del remitente
$headers .= "From: $_POST['email']";
mail($destinatario,$asunto,$cuerpo,$headers)or die("Lo sentimos, debes configurar un servidor de correo (SMTP) primero!");
?>

El equipo "servidor" es un XP Pro con Xampp instalado y PHP y MySQL iniciados como servicios.

El archivo php.ini está configurado de la siguiente manera:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost

pero al ejecutar el formulario y llamar al script no me envia el correo.

¿Qué podría estar ocurriendo?

De antemano, gracias.

dreamsw...
Ayuda por favor
30/10/2010
Hola amigos, mi problema es que mando el email y no me llega nada al correo, ya prove varios codigo y nada, el ultimo que tengo que he provado es:

Todo lo rescato de un formulario html

<?php
if(isset($_POST['send'])){
require_once("cuerpos.php");
$error = false;
$name = $_REQUEST['name'];
$lastname = $_REQUEST['lastname'];
$city = $_REQUEST['city'];
$mail = $_REQUEST['mail'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];

if($name == trim('')) {
$error=true;
$ername = "A Name<br />";
}
if($lastname == trim('')) {
$error=true;
$erlastname = "A Lastname<br />";
}
if($city == trim('')) {
$error=true;
$ercity = "A City<br />";
}
if($mail == trim('')) {
$error=true;
$ermail = "An E-mail<br />";
}
if($subject == trim('')) {
$error=true;
$ersubject = "A Subject<br />";
}
if($message == trim('')) {
$error=true;
$ername = "A Message<br />";
}

if($error) {
mitadalta();
echo "<h1>Error Information</h1>";
echo "<p>Please complete minimum requiered fields, for the correct funcionality of the sistem <br />
Minimums requiered fields are:<br />";
if(isset($ername))
echo $ername;
if(isset($erlastname))
echo $erlastname;
if(isset($ercity))
echo $ercity;
if(isset($ermail))
echo $ermail;
if(isset($ersubject))
echo $ersubject;
if(isset($ermessage))
echo $ermesage;
echo "<br /><input name='' type='button' value='Go back' onclick='javascript:window.history.back();' /></p>";
mitadbaja();
exit;
}

$destino = 'correo@gmail.com';
$direccion = $_REQUEST['address'];
$estado = $_REQUEST['state'];
$zipcode = $_REQUEST['postal'];
$pais = $_POST['pais'];
$tel1 = $_REQUEST['number1'];
$tel2 = $_REQUEST['number2'];
$etiqueta = $_REQUEST['drop'];
if(isset($_REQUEST['ages']))
$etiqueta2 = 'Yes';
else
$etiqueta2 = 'No';
if(isset($_REQUEST['parents']))
$etiqueta3 = 'Yes';
else
$etiqueta3 = 'No';
$mensaje = $_REQUEST['message'];
$fecha = date('g:i:s A - d/m/Y');
$headers = "From: ".strip_tags($mail)." ";
$headers .= "MIME-Version: 1.0 ";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 ";

$contenido = '<html>
<body>
<b>Mensaje enviado:</b> '.$fecha.'<br/>
<br/>
<b style="font-size:18px;">Datos del cliente:</b><br />
<br />
<table width="688" border="0" cellspacing="10">
<tr>
<td width="257"><b style="font-size:16px;">Complete name: </b></td>
<td width="421"><em>'.$name.' '.$lastname.'.</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Address: </b></td>
<td><em>'.$direccion.'.</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">State / Province: </b></td>
<td><em>'.$estado.'.</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Town / City: </b></td>
<td><em>'.$city.'.</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Zip code / Postal: </b></td>
<td><em>'.$zipcode.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Country: </b></td>
<td><em>'.$pais.'.</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Email: </b></td>
<td><em>'.$mail.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Daytime phone number: </b></td>
<td><em>'.$tel1.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Evening phone number: </b></td>
<td><em>'.$tel2.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Drop-down label: </b></td>
<td><em>'.$etiqueta.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Children Age's: </b></td>
<td><em>'.$etiqueta2.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Name of parents or guadians: </b></td>
<td><em>'.$etiqueta3.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Client subject: </b></td>
<td><em>'.$subject.'</em></td>
</tr>
<tr>
<td width="257"><b style="font-size:16px;">Client Message: </b></td>
<td><em>'.$mensaje.'.</em></td>
</tr>
</table>
</body>
</html>';

if(mail($destino,$subject,$contenido,$headers)) {
mitadalta();
echo "<h1>The message has been sent</h1>";
echo "<p>Your message has been sent successfully,<br />thank you for contacting us<br /><br />
<a href='index.html'>Go to home page</a></p>";
mitadbaja();
} else {
mitadalta();
echo "<h1>Error Information</h1>";
echo "<p>Oops! There was a problem sending your message, sorry, try again in a moment.</p>";
echo $headers;
mitadbaja();
}
}
?>

acrab
hola!!
07/12/2010
bueno soy nueva en programación y me gustaría saber si hay alguna forma o un código k funcione para enviar correos con php sin tener k configurar el SMTP,la verdad e encontrado algunos pero no me funcionan y pues me e tratado de documentar pero siempre encuentro k toca configurar SMTP...
si alguien me puede colaborar gracias..

:D:D

idmg
ayuda con el envio de mails con php
22/1/2011
Hola,
Gracias por este manual, me ha servido de mucho, monte la pagina en un servidor gratuito y probe y efectivamente me llegan los mails desde la pagina, lo unico en que quisiera que me ayudaran ahora es que el mail que me llega, llega todo pegado sin estructura, sera posible darle al mensaje que se envia desde la pagina un formato para que se entienda mejor... es que llega todo pegado.

Ejemplo: Asunto:xxEmail:xxxNombre:xxx...

Asi es todo el mensaje que me llega...

Espero y puedan ayudarme. Gracias.
Siempre se va a correo no deseado
22/1/2011
Así modifique el código una y otra vez siempre se va a correo no deseado y/o en lugar de las tildes salen otra codificación. Necesito ayuda!! Uso mi correo de mi servidor de hosting y ya probé de todo. Este es mi último código:

<?
$nombre= 'NOMBRE';
$email = 'no-reply@tec001.uphero.com';
$titulo= 'TÍTULO';
$mensaje = 'MENSAJE';

$headers = "MIME-Version: 1.0 ";
$headers .= "Content-type: text/html; charset=utf-8 ";
$headers .= "From: $nombre <$email> ";
$headers .= "Return-path: $nombre <problemascontucomputadora@hotmail.com> ";
$headers .= "X-Priority: 1 ";
$headers .= "X-MSMail-Priority: High ";
$headers .= "X-Mailer: PHP/".phpversion()." ";

$target="lweb20@hotmail.com";

mail($target, $titulo, $mensaje, $headers);
?>

También he probado con el código de su artículo y nada.

fishkdo
Gracias
23/1/2011
gracias me ha funcionado muy bien.. gracias

ramon77
Ayuda para configuracion de PHP
06/2/2011
Buenas tardes:

Veo su instruccion para hacer el envío de correos masivos, solicito la ayuda de alguien que pueda configurar el PHP en mi servidor, ya que la verdad no he podido, alguien que pueda guiarme y que pueda tener contacto por teléfono o messenger e ir haciendolo, espero me puedas ayudar, mi correo es polsin2000@hotmail.com , gracias, saludos.

ramon77
Necesito ayuda para instalar email masivo
06/2/2011
Hola, pido ayuda de alguien que conosca bien como instalar el email masivo en mi servidor, la verdad es que no he podido instalarlo, alguien que pueda ayudarme, que entrando a mi computadora pueda ayudarme a configurarlo desde el mta, php.ini y codigos, mi correo es polsin200@hotmail.com , gracias, saludos.

sari
Mis correos llegan como SPAM y en algunas direcciones SIN FORMATEAR
09/2/2011
Buenas tardes,
He visto algun comentario parecido al mio, pero sin contestar por eso escribo mi comentario.

Los correos que envio se reciben perfectamente en cuentas de gmail, hotmal...Pero en correos con dominio propio @midominio.com mis correos llegan con html sin formatear, no me reconoce las imagenes ni los links, ni nada..
Que puede estar pasando?

Ademas de eso, tambien me pasa que mis correos se meten en SPAM

Gracias de antemano

Shevas
Duda sobre el script
25/7/2011
Estimados Señores ante todo muchas gracias por el gran aporte que realizan,
quisiera saber como cambio la tipografia en el mensaje de envio del mail, es decir una vez enviado el mismo.....si es posible tambien me gustaria saber si es posible cambiarle el tamaño a la fuente,

millones de gracias,

Saludos.

chipix
Una pregunta acerca de esto
04/8/2011
Estoy intentando hacer eso mismo pero en vez de intriducir el código HTMl directamente ne la variable, lo quiero hacer en un textarea de un formulario y luego capturarlo pero, por ejemplo las imágenes que incluyo no me salen.

Un saludo.

wesroe7...
No envia el Email
05/9/2011
Tengo un correo bastante sencillo siguiendo la estructura marcada en el ejemplo del tutorial y a la hora de enviarlo me da que se envia con exito, el problema viene cuando en realidad no lo llega a enviar. ¿Alguna sugerencia de donde puede estar el fallo o donde es que se corta la transmision para que no llegue a enviarse?. El hosting es de Hostalia, no se si puede ser que el mismo pueda llegar a no enviar este email despues de hacer el resto correcto.
Un saludo

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...