Foros del Web » Programando para Internet » PHP »

No me einvia correo!

Estas en el tema de No me einvia correo! en el foro de PHP en Foros del Web. Haber si me podeis hechar un cable, tengo un Oscommerce, y hasta ahora funcionaba correctamente, pero ahora ha dejado de enviarme los correos, tanto de ...
  #1 (permalink)  
Antiguo 29/08/2009, 02:25
 
Fecha de Ingreso: abril-2009
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
No me einvia correo!

Haber si me podeis hechar un cable, tengo un Oscommerce, y hasta ahora funcionaba correctamente, pero ahora ha dejado de enviarme los correos, tanto de los pedidos como de comentarios, cosa que antes funcionaba.

El unico cambio que se ha realizado, es que me han redirecionado el dominio, y en principio no se ha tocado nada mas, por otro lado al redirecionarse el dominio, se ha modificado los archivos configure.php.

En la web de Oscommerce no estoy teniendo mucha ayuda, y ya nose donde mirar.

Alguien que me pueda orientar un poco sobre que puede ser, y que requisitos de configuracion necesita el servidor para enviar un mail.

Muchas gracias, Salu2
  #2 (permalink)  
Antiguo 29/08/2009, 02:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: No me einvia correo!

Verifica si donde te redireccionaron tienen instalado SMTP SERVER. Vas a tener que hablar con el administrador del servidor para ver si ha instalado en ese dominio un SMTP SERVER.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/08/2009, 05:51
 
Fecha de Ingreso: abril-2009
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
Respuesta: No me einvia correo!

Ok le preguntare al administrador del sitio. Ademas he programado el siguiente codigo para descartar que es la web:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Mándanos tus comentarios</title>
</head>

<body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060">
<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name=email size=16>
<br>
Comentarios: <textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>

Aun asi seguia sin enviarme los correos.

Salu2
  #4 (permalink)  
Antiguo 29/08/2009, 05:57
Avatar de Luis207  
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Respuesta: No me einvia correo!

Prueba a poner solo $_POST en el IF
  #5 (permalink)  
Antiguo 29/08/2009, 06:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: No me einvia correo!

No uses $HTTP_POST_VARS estan obsoletas usa $_POST.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 31/08/2009, 06:44
 
Fecha de Ingreso: abril-2009
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
He cambiado todas $HTTP_POST_VARS por $_POST y aun asi sigue sin ir, es mosqueante porque hasta hace unos dias funcionaba.

Los del sitio web me estan diciendo que use la clase phpmailer, pero nose cuanto tendria que modificar la web.

Algun detalle, mas orientado a la configuracion del servidor o del sitio?

Cita:
Iniciado por RyoniS Ver Mensaje
Ok le preguntare al administrador del sitio. Ademas he programado el siguiente codigo para descartar que es la web:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Mándanos tus comentarios</title>
</head>

<body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060">
<?
if (!$HTTP_POST_VARS){
?>
<form action="envia_form_php.php" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name=email size=16>
<br>
Comentarios: <textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>

Aun asi seguia sin enviarme los correos.

Salu2
Cuando hice esta prueba no me di cuenta, y la cuenta de correo me lo metio como "spam", tonces este codigo si que funciona.

Ahora el error de mi Oscommerce sigue ahi, he estado mirando un poco el codigo del mi Oscommerce, y se me queda muy grande para mis conocimiento de programacion. Lo que he visto es que la forma de enviarlos es a traves de una funcion que hay creada que se llama "tep_mail" pero que no entiendo casi.
En la función, parece ser que usa otra funcion, la de "send" y esta no la veo creada por ningun sitio, puede ser por esto o es una funcion estandar de php.

El codigo es asi:

function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {
if (SEND_EMAILS != 'true') return false;

// Instantiate a new mail object
$message = new email(array('X-Mailer: osCommerce Mailer'));

// Build the text version
$text = strip_tags($email_text);
if (EMAIL_USE_HTML == 'true') {
$message->add_html($email_text, $text);
} else {
$message->add_text($text);
}

// Send message
$message->build_message();
$message->send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject);
}

Nadie sabe a que se puede deber, que antes funcionase y ahora no?, siento insistir tanto con este tema, pero esque no veo luz por ningun lado.

Muchas gracias a todos.

Bueno problema solucionado, pero estoy flipando en colores, al final me lo han solucionado los del servidor, pero era de la web.

El error se encontraba en el fichero includes/functions/html_output.php en la función tep_href_link. Se ha modificado la línea correspondiente al separador. Generaba código HTML con un separador erroneo en la URL (&nbsp;) en vez del habitual '&':

if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
//$separator = '&nbsp;';
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}

De esta manera, el argumento "action" no era pasado correctamente y no realizaba el envío.

Sigo sin entender el porque antes iba correctamente y de un dia a otro empezo a fallar, con el unico cambio de redireccionar el dominio, y no tocar el codigo para nada. Por cierto no solo me fallaba el correo, sino que no me dejaba ingresar con mi registro de cliente, y ahora funciona todo.

A alguien se le ocurre que ha podido pasar?

Última edición por GatorV; 02/09/2009 a las 09:30
  #7 (permalink)  
Antiguo 02/09/2009, 13:04
 
Fecha de Ingreso: abril-2009
Mensajes: 34
Antigüedad: 15 años
Puntos: 0
Respuesta: No me einvia correo!

Bueno problema solucionado, pero estoy flipando en colores, al final me lo han solucionado los del servidor, pero era de la web.

El error se encontraba en el fichero includes/functions/html_output.php en la función tep_href_link. Se ha modificado la línea correspondiente al separador. Generaba código HTML con un separador erroneo en la URL (&nbsp;) en vez del habitual '&':

if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
//$separator = '&nbsp;';
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}

De esta manera, el argumento "action" no era pasado correctamente y no realizaba el envío.

Sigo sin entender el porque antes iba correctamente y de un dia a otro empezo a fallar, con el unico cambio de redireccionar el dominio, y no tocar el codigo para nada. Por cierto no solo me fallaba el correo, sino que no me dejaba ingresar con mi registro de cliente, y ahora funciona todo.

A alguien se le ocurre que ha podido pasar?
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 00:44.