Foros del Web » Programando para Internet » PHP »

error en función mail

Estas en el tema de error en función mail en el foro de PHP en Foros del Web. Hola a todos: Estoy realizando envios directos de mail mediante la funcion mail a traves de mi página en php, donde un usuario introduce su ...
  #1 (permalink)  
Antiguo 10/01/2003, 05:37
 
Fecha de Ingreso: julio-2002
Mensajes: 16
Antigüedad: 21 años, 9 meses
Puntos: 0
error en función mail

Hola a todos:
Estoy realizando envios directos de mail mediante la funcion mail a traves de mi página en php, donde un usuario introduce su login a partir de un formulario y se el envia directamente la contraseña a´l mail asociado.
El código funciona, pero me da error de timeout a pesar que el mail se envia correctamente
Fatal error: Maximum execution time of 30 seconds exceeded in
candidato_olvidar_password_run.php on line 47

Lo envio a traves del smtp de mi proveedor a internet, pues por suerte permite envíos de mails de direcciones que no esten dadas de alta en este proveedor.
¿Este valor de 30 segundos lo marca mi proveedor o es cosa de la
configuración de php en el apartado [mail function] ?


Otra cosa, que cabeceras debo introducir para que se envie en formato html, para poder introducir enlace directo a mi página a través del correo? He copiado unas cabeceras, que sirven pero el cuerpo del mensaje aparece sin saltos de linea ni tabuladores, a pesar de haberlos introducido
$cadena="Identificación para mi web"." \n";
$cadena=$cadena."Estimado usuari@:\n\n";
$cadena=$cadena."Para acceder a los servicios de la web,";
$cadena=$cadena." le recordamos que sus datos son:\n";
$cadena=$cadena."Nombre de usuario: ".$c_usuari."\n";
$cadena=$cadena."Contraseña: ".$row["F004_passwd"]."\n\t\t";
$cadena=$cadena."Atentamente:> <a href=\"www.miweb.com\">MiWebCom</a>";

$myname = "Webmaster";
$myemail ="";
$contactname = "Mister Contact";
$contactemail = "";
$myreplyemail="";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$myname." <".$myemail.">\r\n";
$headers .= "To: ".$contactname." <".$contactemail.">\r\n";
$headers .= "Reply-To: ".$myname." <".$myreplyemail.">\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: Just My Server";

mail($row["F002_email"], "Recordatorio de contraseña",$cadena,$headers);

Saludos y feliz año a todos.
  #2 (permalink)  
Antiguo 10/01/2003, 15:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si envias el mail en formato HTML, debes hacer los saltos con <br>. Para los tabuladores es mas dificil. O poner el mensaje entre tags <pre> </pre> que creo que hacen que el \n y el \t se interpreten correctamente.

El limite de 30 segundos es el limite que tiene PHP para ejecutar un script. Puedes modificar su valor en el php.ini (max_execution_time, si no me equivoco) o bien dentro del script con set_time_limit(). De esta ultima forma solo modificas el valor para ese script.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 11/01/2003, 06:06
 
Fecha de Ingreso: julio-2002
Mensajes: 16
Antigüedad: 21 años, 9 meses
Puntos: 0
Gracias Josemi

Ha funcionado cambiando el valor maximo de ejecución en el php.ini
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 23:37.