Foros del Web » Programando para Internet » PHP »

Evitar que en un email se haga un salto de linea depues de los 1024 caracteres

Estas en el tema de Evitar que en un email se haga un salto de linea depues de los 1024 caracteres en el foro de PHP en Foros del Web. Hola Foristas de Foros del Web: Bien pues tal vez no es el titulo indicado para mi duda, así que me tratare de explicar, uso ...
  #1 (permalink)  
Antiguo 01/09/2004, 21:06
 
Fecha de Ingreso: septiembre-2004
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Evitar que en un email se haga un salto de linea depues de los 1024 caracteres

Hola Foristas de Foros del Web:

Bien pues tal vez no es el titulo indicado para mi duda, así que me tratare de explicar, uso un sistemilla que envia emails uso estos encabezados
$headers .= "X-Mailer: PHP\n"; // mailer
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit\n"; //bit

pero al recibir el mail algunas partes no toman los colores que le indico y es provocado porque se hace un salto de linea, según tengo entendido yo, sólo se permiten 1024 caracteres. Sinceramente no se si es eso ahora muestro lo que les decia....

<input type='text' readonly size='10' value='2' style='font-famil!//aquí se corta
y: Arial, Helvetica, sans-serif; color:#FF3333; background-color:#CCCCCC; border-style: none;'></td>

obmiamente hay mas lineas atras pero el punto es que al llegar aqui hace lo que les he mostrado y provoca que no tomen lo valores los tag de HTML.

¿Cómo arrglo esto?

Gracias por su atención.
  #2 (permalink)  
Antiguo 02/09/2004, 01:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Muy facil de arreglar. Antes de enviar el mensaje, lo preparas para que el codigo HTML no supere 1024 caracteres por linea. Puedes usar wordwrap() (http://www.php.net/manual/en/function.wordwrap.php).

La razon es que el standard del formato de mensajes de email especifica que las lineas del mensaje no pueden pasar de 1024 caracteres. Es un limite fijo que no puedes modificar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/09/2004, 16:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Que tal ¡¡¡¡ :

Gracias josemi.

Bien pues le cuento que efectivamente se puede usar el wordwrap, de hecho ya lo habia intentado con un código como este que encontre en otro foro:
$message = wordwrap($message, 1024, '\r\n');
pero pa tres cosas sirve ya que para empezar los mails que envio son dinamicos es decir no siempre traen la misma cantidad de información, el punto de esto es como dice josemi "lo preparas para que el codigo HTML no supere 1024 caracteres por linea" (de hecho de alli tome la idea) y en el manual de php exactamente donde hablan de wordwrap hay algunas fúnciones pero no me convencierón del todo ya que como mencione mis emilios son dinamicos por lo cual hice una mezcla medio rara de las sugerencias que encontre y resulto está función que les comparto por si a alguen le sirve (tal vez no es lo mejor pero me fúnciona muy bien )

function mailwidth($str, $marker, $cut, $cols){
$len = strlen($str);
$count = 0;
for ($i = 0; $i < $len; $i++) {
$chr = $str[$i];
if (($chr == $marker) && ($count >= $cols)){
$chr .= $cut;
$count=0;
}
$count++;
$result .= $chr;
}
return $result;
}
donde ...

$cols=800;
$cut="\n";
$marker=">";

les aconsejo a los que usen esta fúncion usen un numero en cols no muy cercano a los 1024 para no provocar los mismos errores que pretendemos saltar.

  #4 (permalink)  
Antiguo 03/09/2004, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Interesante el tema .. ¿que tal si hacen una FAQ sobre el problema?

Un saludo,
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 16:51.