Autor
|
Tema: mail(), error raro al intentar enviar mail ! (Leído 4,904 veces)
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Hola: Tengo un pequeno script en PHP que uso para enviar boletines de noticias, avisos, renocaviones, actualiciones, etc, etc... a los usuarios de mi Base de Datos, pero como son muchos y el SMTP me limita a solo 500 mails diarios, y ademas no me permite ejecutar un script PHP por mas de 1 minutos, tuve que modificar mi script para que me envie de 50 en 50, y asi alcanzar el limite de 500. Pero curiosamente, algunas veces el script simplemente se frena y no me da ningun resultado, ya que cuando los 50 mails se envian correctamente, este me lo indica, pero a veces simplemente se queda sin mostrar mensaje .... Cabe mencionar que uso AJAX para el envio de los mails. Las veces que falla, sucede una de estas dos situaciones: 1- No muestra resultado de satisfaccion y el script simplemente se frena. 2- Me muestra este error: " No recipient addresses found in header". La funcion que uso para envio de mails. Pastebind: http://pastebin.com/d369f3f37<?php function enviar_correo( $to, $asunto, $modo, $enlace, $adjunto, $from, $log, $link_custom ) { $boundary= md5(time()); //valor boundary $htmlalt_boundary= $boundary. "_htmlalt"; //boundary suplementario $subject=$asunto; //titulo del correo //cabeceras para enviar correo en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados $headers .= "From: ". $from. "\r\n"; //correo del que lo envia //incia cuerpo del mensaje que se visualiza $cuerpo="--". $boundary. "\r\n"; $cuerpo .= "Content-Type: multipart/alternative; boundary=\"". $htmlalt_boundary. "\"\r\n\r\n"; //contenido alternativo: texto o html $cuerpo .= "--". $htmlalt_boundary. "\r\n"; $cuerpo .= "Content-Type: text/html; charset=iso-8859-1\r\n"; $cuerpo .= "Content-Transfer-Encoding: 8bits\r\n\r\n"; $cuerpo .= "Te escribimos para informarte que se a publicado una nueva noticia en el sitio <b>". $_SERVER['HTTP_HOST']. "</b>, "; $cuerpo .= "gracias por preferir nuestra comunidad y esperamos que este nuevo <b>servicio informativo</b> te sea de ayuda para enterarte "; $cuerpo .= "de una forma rapida y facil de las novedades de nuestro sitio web."; $cuerpo .= "\r\n\r\n"; $cuerpo .= "--". $htmlalt_boundary. "--\r\n\r\n"; //fin cuerpo mensaje a mostrar //archivos adjuntos { $archivo= $adjunto; $buf_type= obtener_extencion_stream_archivo($adjunto); //obtenemos tipo archivo $fp= fopen( "uploads/".$archivo, "r" ); //abrimos archivo $buf= fread( $fp, filesize("uploads/".$archivo) ); //leemos archivo completamente fclose($fp); //cerramos apuntador; $cuerpo .= "--". $boundary. "\r\n"; $cuerpo .= "Content-Type: ". $buf_type. "; name=\"". $archivo. "\"\r\n"; //envio directo de datos $cuerpo .= "Content-Transfer-Encoding: base64\r\n"; $cuerpo .= "Content-Disposition: attachment; filename=\"". $archivo. "\"\r\n\r\n"; } $cuerpo .= "--". $boundary. "--\r\n\r\n"; //funcion para enviar correo set_time_limit(600); //establecemos tiempo de ejecucion scrtip a 10 minutos if( mail($to, $subject, $cuerpo, $headers) == FALSE ) return 0; return 1; } ?>
|
|
« Última modificación: 23 Enero 2010, 16:31 pm por Diabliyo »
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
mira, no conozco mucho la funcion, pero es medio logico, te dice que el problemas es que no se encontro el "recipient" en el "header", entonces, elproblema sabemops donde esta: //cabeceras para enviar correo en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados $headers .= "From: ". $from. "\r\n"; //correo del que lo envia
y sabemos cual es, que no hay recipient (parece recipiente, pero como para mandar un mail no se usa recipiente debe ser el quelo recibe, osea "To:"). entonces esto se arregla asi: //cabeceras para enviar correo en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados $header .="From: ". $from. "\r\nReply-To: ".$to."\nX-Mailer: PHP/";
entendes cual fue le problema? decime si funco o no...
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
mira, no conozco mucho la funcion, pero es medio logico, te dice que el problemas es que no se encontro el "recipient" en el "header", entonces, elproblema sabemops donde esta: //cabeceras para enviar correo en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados $headers .= "From: ". $from. "\r\n"; //correo del que lo envia
y sabemos cual es, que no hay recipient (parece recipiente, pero como para mandar un mail no se usa recipiente debe ser el quelo recibe, osea "To:"). entonces esto se arregla asi: //cabeceras para enviar correo en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados $header .="From: ". $from. "\r\nReply-To: ".$to."\nX-Mailer: PHP/";
entendes cual fue le problema? decime si funco o no... Primeramente gracias por responder y tu tiempo.... Bueno, entonces solo falto agregar el Reply-To, pero respecto a X-Mailer: PHP, eso debo ponerlo forzosamente ?, puedo omitir eso ?. Por otro parte, me sigue la duda de porque anteriormente no recivia error alguno, sino es hasta ahorita, y estamos hablando que tengo mas de 24 meses usando mi sistema de envio de mails para mi web y jamas habia obtenido dicho error, solamente que a veces el script se frenaba (uso AJAX), pero fuera de eso no salia dicho error .... Alguna idea ? Por favor confirmame si es necesario o no tambien agregar lo de X-Mailer: PHP, ya que tengo en mente no agregarlo, pero primero quiero tener tu opinion antes de hacer las pruebas ! Por ultimo... en Reply-To, debo anexar lo que YO TENGO en la variable $to ?... Ya que en dicha variable tengo el correo de la persona a quien le voy a enviar el mail, y pues me imagino que Reply-To se usaria en caso de que el usuario contestara al mail, no ?
|
|
« Última modificación: 25 Enero 2010, 06:01 am por Diabliyo »
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
hagamos algo, porq no lo probas? primero sacale lo del x-mailer, y proba entre dos correos tuyos, lo de replay-to te lo explico asi: from = desde (correo emisor) to = a, hacia donde (correo receptor)
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
hagamos algo, porq no lo probas? primero sacale lo del x-mailer, y proba entre dos correos tuyos, lo de replay-to te lo explico asi: from = desde (correo emisor) to = a, hacia donde (correo receptor)
Aun sigue la duda men... Mira, en mis funciones lo manejo asi las variables: $from --> tengo el mail mio, del emisor vaya. $to --> tengo el mail del receptor. Y Reply-To ???.... se supone que deberia poner el $from en esta cabecera, no ?... aparte, no se supone que si NO envio dicha cabecera, aun asi deberia enviarse el mail y si el gestor de correo no detecta una cabecera Reply-To entonces asume que cualquier Replay (contestacion) lo haria al mail que este escrito en la cabecera To:... que no ?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Enviar mail con HTML ayuda
PHP
|
extreme69
|
1
|
1,779
|
11 Mayo 2012, 10:51 am
por extreme69
|
|
|
visualbasic 2010. problema para enviar mail con un bmp adjunto
.NET (C#, VB.NET, ASP)
|
eze_vin
|
2
|
3,078
|
4 Febrero 2013, 22:22 pm
por Danyfirex
|
|
|
[Ayuda]Enviar mail con Dll vbSendMail
Programación Visual Basic
|
Flamer
|
3
|
4,102
|
15 Octubre 2013, 19:32 pm
por Danyfirex
|
|
|
Enviar mail sin formato mime (plain text)
.NET (C#, VB.NET, ASP)
|
dep_serg
|
1
|
2,551
|
6 Febrero 2015, 07:10 am
por __Alvaro 2015__
|
|
|
[Perl] Error al enviar Mail
Scripting
|
DeMoNcRaZy
|
9
|
7,590
|
1 Julio 2015, 11:45 am
por explorer
|
|