Foros del Web » Programando para Internet » PHP »

Problemas con mail()

Estas en el tema de Problemas con mail() en el foro de PHP en Foros del Web. Buenos Días una vez por aca solicitando su ayuda ya e configurando el php.ini pero aun me sigue dando este error este es el codigo ...
  #1 (permalink)  
Antiguo 08/10/2010, 09:27
Avatar de Algadar  
Fecha de Ingreso: abril-2009
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 1
Problemas con mail()

Buenos Días una vez por aca solicitando su ayuda
ya e configurando el php.ini
pero aun me sigue dando este error
este es el codigo que estoy utilizando
<?php
$header = 'From: [email protected]' . "\r\n";
$header = $header . "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= $header . "Mime-Version: 1.0 \r\n";
$header .= $header . "Content-Type: text/plain";

mail("[email protected]", "prueba", utf8_decode("mensaje"), $header);
?>

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for [email protected] in C:\AppServ\www\Sfw\enviar_informe.php on line 7

no se que estoy haciendo mal
agradezco de antemano su ayuda
__________________
Deseo poco y lo poco que deseo, lo deseo poco.!
De Colores.
  #2 (permalink)  
Antiguo 08/10/2010, 11:07
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: Problemas con mail()

[email protected], es una dirección real???

por otro lado necesitas configurar tu máquina para que funja como servidor de correo, porque veo que lo estas corriendo desde c:\ o sea tu disco duro...

verifica esas dos cosas, pon una dirección real y pruebalo desde un hosting, o bien configura tu maquina..

saludos! ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 08/10/2010, 16:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problemas con mail()

Algadar:

El SMTP te esta respondiendo, asi que es de suponer que tu php esté bien configurado,
el error 550 5.7.1 refiere a que tu smtp no puede derivar el correo, o por no reconocer tu usuario o por estar en alguna lista de spam, intentá reemplazar esa dirección ficticia por una de las que tengas configurado en el smtp con el que etás intentando enviar el correo.
Si asi y todo tienes problemas intenta de usar sendmail para enviar desde php, no sé la versión de Appserv lo incluye, yo uso Xampp

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 14/10/2010, 09:16
Avatar de Algadar  
Fecha de Ingreso: abril-2009
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problemas con mail()

emprear.

te muestro exactamente lo que estoy utilizando.

<?php
$fech = date("Y/m/d h:m:s");

function enviar_correo() {
$mail='[email protected]';

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Solicitud realizada por FELIX \r\n";
$mensaje .= "Telefono: \r\n";
$mensaje .= "e-mail: \r\n";
$mensaje .= "Contrato: \r\n";
$mensaje .= "Propietario: \r\n";
$mensaje .= "Difunto: \r\n \r\n";
$mensaje .= "Reclamo/Sugerencia: \r\n \r\n";
$mensaje .= "Mensaje que se va a enviar \r\n \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time()). " \r\n \r\n";
$mensaje .= "Motivos de Reclamo: " . " \r\n \r\n";
mail($mail, $asunto, utf8_decode($mensaje), $header);
}
enviar_correo();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Envio de correo</title>
</head>

<body>

</body>
</html>

y esta es la configuración en el php.ini

[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 465

; For Win32 only.
;sendmail_from = [email protected]
__________________
Deseo poco y lo poco que deseo, lo deseo poco.!
De Colores.
  #5 (permalink)  
Antiguo 14/10/2010, 10:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problemas con mail()

algadar:

Intenté usar mi configuración con mi cuenta de gamail (actualmente usaba otra, y funciona perfecto), y me produce un error
10/10/14 13:19:53 ** --- MESSAGE END ---
10/10/14 13:19:53 ** Connecting to smtp.gmail.com:587
10/10/14 13:19:53 ** Connected.
10/10/14 13:19:53 << 220 mx.google.com ESMTP 54sm8856321yhl.31<EOL>
10/10/14 13:19:53 >> EHLO gmail.com<EOL>
10/10/14 13:19:54 << 250-mx.google.com at your service, [190.220.244.231]<EOL>250-SIZE 35651584<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250 ENHANCEDSTATUSCODES<EOL>
10/10/14 13:19:54 ** Authenticating as [email protected]
10/10/14 13:19:54 >> MAIL FROM: <[email protected]><EOL>
10/10/14 13:19:54 << 530 5.7.0 Must issue a STARTTLS command first. 54sm8856321yhl.31<EOL>
10/10/14 13:19:54 ** Disconnecting from smtp.gmail.com:587
10/10/14 13:19:54 ** Disconnected.
10/10/14 13:19:54 ** Disconnected.
10/10/14 13:19:54 ** Must issue a STARTTLS command first. 54sm8856321yhl.31<EOL>
10/10/14 13:21:38 ** --- MESSAGE BEGIN ---
10/10/14 13:21:38 ** To: [email protected]
10/10/14 13:21:38 ** Subject: Formulario desde la Web
10/10/14 13:21:38 ** From: [email protected]
10/10/14 13:21:38 ** Reply-To: no-reply
10/10/14 13:21:38 ** X-Mailer: PHP/5.2.9
10/10/14 13:21:38 ** Content-type: text/plain; charset='utf-8'
.

al parecer se produce porque Gmail corre bajo SSL , un servidor seguro para prevenir span,
sin embargo creo que encontré la solución.
más tarde la voy a probar y te comento los resultados.


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 14/10/2010, 12:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problemas con mail()

Algadar:

Ya lo solucioné.
Hay dos opciones, que instales un servidor smtp (que es un poco más complicado, y no creo que se justifique, o utilizar la versión para windows de Sendmail, que emula el comportamiento de sendmail en Unix.


primero tenes que descargarte desde http://glob.com.au/sendmail/ el sendmail.zip (yo ya lo estaba usando, pero revisé y esta versión corrije el tema de enviar email sobre SSL.
Descomprimí el contenido en, por ejemplo
C:\sendmail
abri con el editor de texto "sendmail.ini" que se encuentra en esa carpeta, en ese archivo las lineas que comienzan con ; son comentarios

aca tengo una duda, al leer tu post veo que como smtp estas usando gmail (que utiliza el puerto 465), pero la cuenta que utilizas es '[email protected]', que obviamente no es de Gmail,
te voy a pasar las dos configuraciones


si usas una cuenta de gmail:

sendmail.ini:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
default_domain=gmail.com
error_logfile=error.log
debug_logfile=debug.log

[email protected]
auth_password=tuclavedegmail

; la que sigue force_sender, si tu php no tiene un campo $from ó $de
; que sería el email ingresado en el form, tenes que completarla con tu
; dirección de eamil, si no, dejala comentada

;force_sender=

;en la que sigue poné el nombre de tu dominio si lo tenes
; nunca pongas "localhost", si no, ponele gmail.com
hostname=gmail.com


php.ini: (todo comentado menos sendmail_path

[mail function]
; For Win32 only.
;SMTP = smtp.gmail.com
;smtp_port = 465

; For Win32 only.
;sendmail_from [email protected]

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

si no usas una cuenta de gmail (supongamos usas [email protected]):

[sendmail]
; puede cambiar, fijate cual es el smtp de grupometropolitano
; podria ser mail.grupometropolitano.com
smtp_server=smtp.grupometropolitano.com

; si no usa ssl seguramente será 25 el puerto
smtp_port=25


smtp_ssl=auto
default_domain=grupometropolitano.com
error_logfile=error.log
debug_logfile=debug.log

[email protected]
auth_password=tuclavedegrupometropolitanol

; la que sigue force_sender, si tu php no tiene un campo $from ó $de
; que sería el email ingresado en el form, tenes que completarla con tu
; dirección de eamil, si no, dejala comentada

;force_sender=

;en la que sigue poné el nombre de tu dominio si lo tenes
; nunca pongas "localhost", si no, ponele gmail.com
hostname=grupometropolitano.com


el php.ini, queda igual


No verifiqué tu script, podés`probar con la que sigue que funciona


Código PHP:
Ver original
  1. <?php
  2. $aviso = "";
  3. if ($_POST['email'] != "") {
  4. $msj = $_POST['msj'];
  5.     // email de destino
  6.     $email = "[email protected]";  #####poner aqui el email al que se quiere que llegue el form
  7.     // asunto del email
  8.     $asunto = "Formulario desde la Web ";
  9. ########################## 
  10.  
  11. $para      = "$email ";
  12. $titulo = "$asunto";
  13. $mensaje = "NOMBRE: " . $_POST['nombre'] . "\r\n";
  14. $mensaje .= "APELLIDO: " . $_POST['apellido'] . "\r\n\r\n";
  15. $mensaje .= "EMAIL: " . $_POST['email'] . "\r\n";
  16. $mensaje .= "--------------------------------------------------------------\r\n";
  17. $mensaje .= "$msj";
  18. $mensaje .= "\r\n--------------------------------------------------------------\r\n";
  19. $cabeceras = "From: " . $_POST['email'] . "\r\n" .
  20.     "Reply-To: no-reply" . "\r\n" .
  21.     'X-Mailer: PHP/' . phpversion() ."\r\n" . "Content-type: text/plain; charset='utf-8'";
  22.  
  23. $m =mail($para, $titulo, $mensaje, $cabeceras);
  24.     if ($m) {
  25.         $aviso = "Su mensaje fue enviado correctamente";
  26.     } else {
  27.         $aviso = "Error al enviar";
  28.     }
  29.  
  30. }
  31. ?>
  32. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  33. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  34. <html xmlns="http://www.w3.org/1999/xhtml">
  35. <head>
  36. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  37. <title>Formulario</title>
  38.  
  39. </head>
  40. <body>
  41. <h2>Formulario</h2>
  42. <?php if ($aviso != "") { ?>
  43. <p><em><?php echo $aviso; ?></em></p>
  44. <?php } ?>
  45. <form action="" method="post">
  46.     <label for="nombre">Nombres</label> <input name="nombre" id="nombre" type="text" /><br />
  47.     <label for="empresa">Empresa</label> <input name="empresa" id="empresa" type="text" /><br />
  48.     <label for="email">Email</label> <input name="email" id="email" type="text" /><br />
  49.     <label for="mensaje">Comentario</label> <textarea name="msj" cols="30" rows="6" id="mensaje"></textarea><br />
  50.     <label for="envio">&nbsp;</label> <button name="envio" id="envio" type="submit">Enviar</button>
  51. </form>
  52. </body>
  53. </html>


en la carpeta c:\sendmail se van generar los archivos "debug.log" y "error.log", (si los hubiera) que te dan valiosa información sobre el proceso.

Recordá que siempre tras editar php.ini tenés que reiniciar el Apache.
Y por último, asegurate que tu furewall no bloquee a sendmail.exe, o nada te va a funcionar
Otro detalle que recorde ahora, algunos servidores de correo te piden que hagas pop antes de enviar con smtp, en ese caso en sendmail.ini, las lineas

;pop3_server=
;pop3_username=
;pop3_password=


tenés que descomentarlas y completar los valores (para gmail al menos, mno hace falta.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 14/10/2010, 14:20
Avatar de Algadar  
Fecha de Ingreso: abril-2009
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problemas con mail()

emprear.

Muchisimas gracias quedo perfecto la cuestión.
me atrevi hacer esto

Código PHP:
 $email "[email protected][email protected]";  #####poner aqui el email al que se quiere que llegue el form 
y funciono a la perfección.


Ahora me voy a tomar el atrevimiento de adaptar ese codigo a lo que necesito...!!
__________________
Deseo poco y lo poco que deseo, lo deseo poco.!
De Colores.
  #8 (permalink)  
Antiguo 14/10/2010, 15:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problemas con mail()

Algadar:

Mmmmhhhh!, multiples destinatarios? interesante desafio, si te funciona avisame.
a primera vista usándolo desde windows no debería, pero, nunca se sabe...

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 14/10/2010, 16:06
Avatar de Algadar  
Fecha de Ingreso: abril-2009
Mensajes: 115
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problemas con mail()

Provado si funciona para varios destinatarios.!
__________________
Deseo poco y lo poco que deseo, lo deseo poco.!
De Colores.
  #10 (permalink)  
Antiguo 14/10/2010, 16:11
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problemas con mail()

Algadar:

Excelente. Lo voy a revisar a si me saco las dudas, mi primera impresion era que si un smtp estaba en el puerto 465 y otro en el 25, algo iba a provocar un conflicto, porque en el sendmail.ini solo se puede poner un valor...
Ya tengo con que entretenerme


Un abrazo
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: mail
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:11.