Foros del Web » Programando para Internet » PHP »

Error al enviar email desde PHP

Estas en el tema de Error al enviar email desde PHP en el foro de PHP en Foros del Web. tengo el siguiente codigo para enviar correo electronico; Código: <?php mail("[email protected]", "Hola", "Hola", "FROM: [email protected]"); ?> al ejecutarlo me presenta el siguiente ERROR; Warning: mail() ...
  #1 (permalink)  
Antiguo 28/04/2006, 06:18
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
Error al enviar email desde PHP

tengo el siguiente codigo para enviar correo electronico;

Código:
<?php
mail("[email protected]", "Hola", "Hola", "FROM: [email protected]");
?>
al ejecutarlo me presenta el siguiente 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:\WWW\emilio\prueba.php on line 2

Alguien podria ayudarme a solucionar este caso.

Saludos!
  #2 (permalink)  
Antiguo 28/04/2006, 07:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
El error te dice que no tienes un servidor de correo en el equipo en que está php, por tanto, debes instalar uno en esa maquina o indicar, alli donde dice localhost, la ip del servidor de correo.
  #3 (permalink)  
Antiguo 28/04/2006, 07:37
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Información Establecer server SMTP

Al parecer estás trabajando sobre windows y no tienes un servidor de correo instalado, entonces puedes establecer un servidor externo para el envío de mensajes modificando el parámetro SMTP del php.ini de la siguiente manera: ini_set('SMTP','servidor_smtp'); donde 'servidor_smtp' pede ser la url o el ip de algún servidor SMTP.
Yo utilizo esta función para establecer el servidor para el envío de mensajes
Código PHP:

function TestSMTP(&$error){
$SMTP_servers=array('SMTP1'=>'mx1.hotmail.com','SMTP2'=>'mx2.hotmail.com','SMTP3'=>'smtp.gmail.com','SMTP4'=>'smtp.mail.yahoo.com','SMTP5'=>'mail.bellsouth.net');
    foreach(
$SMTP_servers as $SMTP_server){
      
$cp fsockopen ($SMTP_server25$errno$errorstr1);
      if(
$cp){
        
ini_set('SMTP',$SMTP_server);
        return 
true;
      } 
    }
    
$error=$errorstr;
    return 
false;
  } 
lo que hace es comprobar si algún servidor smtp responde y activarlo para poder enviar mensajes; luego debes liberar el parámetro con la instrucción: ini_restore('SMTP');
haz la prueba y nos comentas.
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 28/04/2006, 07:41
 
Fecha de Ingreso: febrero-2006
Mensajes: 148
Antigüedad: 18 años, 2 meses
Puntos: 0
oh instalar un programa que simule un servidor de correos como el mail deamon...
  #5 (permalink)  
Antiguo 28/04/2006, 07:52
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
ya lo solucione!!!!

amigos he encontrado la solucion en las FAQ'S, y esta muy buena!!!

me descargue el mini-relay y me fue de lo mejor!!!!

gracias!

saludos!!
  #6 (permalink)  
Antiguo 28/04/2006, 10:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jcxnet
Al parecer estás trabajando sobre windows y no tienes un servidor de correo instalado, entonces puedes establecer un servidor externo para el envío de mensajes modificando el parámetro SMTP del php.ini de la siguiente manera: ini_set('SMTP','servidor_smtp'); donde 'servidor_smtp' pede ser la url o el ip de algún servidor SMTP.
Yo utilizo esta función para establecer el servidor para el envío de mensajes
Código PHP:

function TestSMTP(&$error){
$SMTP_servers=array('SMTP1'=>'mx1.hotmail.com','SMTP2'=>'mx2.hotmail.com','SMTP3'=>'smtp.gmail.com','SMTP4'=>'smtp.mail.yahoo.com','SMTP5'=>'mail.bellsouth.net');
    foreach(
$SMTP_servers as $SMTP_server){
      
$cp fsockopen ($SMTP_server25$errno$errorstr1);
      if(
$cp){
        
ini_set('SMTP',$SMTP_server);
        return 
true;
      } 
    }
    
$error=$errorstr;
    return 
false;
  } 
lo que hace es comprobar si algún servidor smtp responde y activarlo para poder enviar mensajes; luego debes liberar el parámetro con la instrucción: ini_restore('SMTP');
haz la prueba y nos comentas.
Y la autentificación? .. Esos servidores SMTP que indicas .. no requieren autentificación?

Yo uso la classe:
PHP Mailer
http://phpmailer.sourceforge.net

Permite envio de SMTP directo por SMTP con o sin autentificación.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 28/04/2006, 10:54
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
No requiren autentificación, puedes ver más de este tipo de servidores aqui:
http://www.e-eeasy.com/SMTPServerList.aspx

__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #8 (permalink)  
Antiguo 28/04/2006, 11:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jcxnet
No requiren autentificación, puedes ver más de este tipo de servidores aqui:
http://www.e-eeasy.com/SMTPServerList.aspx

Comentario:

Buff .. entonces todo eso son "open relay" .. Justamente es una de las primeras validaciones que hace un filtro de "anti-spam" común de la mayoría de proveedores .. En ese caso, si usan un servidor SMTP de esa lista (o en general "abierto": que no requiera autentificación) no pidan luego explicaciones de por qué no "llegan" los e-mails o bien de por qué son clasificados como SPAM.

Hay algunos caso que pueda que esto funcione sin problemas .. por ejemplo usar el SMTP de "hotmail" y enviar un e-mail ana cuenta en @hotmail.xxx .. ahí tal vez no te requiera autentificación .. (De hecho veo uno que uso yo .. y si o si me pide autentificación: hotpop.com .. por ahí tengo cuentas creadas desde hace años)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:42.