2011-10-27 7 views
15

Tengo dificultades para formatear una tabla en un correo electrónico HTML. Parece que siempre hay una celda que no tiene el color de fondo o espacios blancos extraños.Signo de exclamación en el correo electrónico HTML

Aquí está el código (en php) -

$subject.="<br/><br/><table style=\"width:585px;\" ><tr><td style=\"padding:10px;background-color:#113797;color:white;\">New & Used Vehicles</td><td style=\"padding:10px;background-color:#113797;color:white;\">Term in Months</td><td style=\"padding:10px;background-color:#113797;color:white;\">APR* As Low As</td><td style=\"padding:10px;background-color:#113797;color:white;\">Monthly Payment Per $1000 Borrowed</td></tr>";  
    $result = mysql_query("SELECT * FROM rates WHERE ID>='32' AND ID <='39'"); 
     while($row = mysql_fetch_array($result)) 
    { 
        $subject.= "<tr><td BGCOLOR=\"#e5f1ff\" style=\"padding:10px;color:black;\">" . $row['name'] . "</td>"; 
        $subject.= "<td BGCOLOR=\"#e5f1ff\" style=\"padding:10px;\">" . $row['term'] . "</td>"; 
        $subject.= "<td BGCOLOR=\"#e5f1ff\" style=\"padding:10px;\">" . $row['apr'] . "</td>"; 
        $subject.= "<td BGCOLOR=\"#e5f1ff\" style=\"padding:10px;\">" . $row['per_1000'] . "</td></tr>"; 
    } 

$subject.= "</table>"; 

así que he intentado tanto fondo CSS y HTML y ambos crean algo que se ve mal. También probé Doctypes.

Así es como se ve mi código de correo.

mail("[email protected]", "$title2", "$subject" , "Content-type: text/html;\r\nFrom: [email protected]"); 

Esto es lo que describe como. Ver el espacio deshonesto?

Table that is messed up!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>Check out the low rates.<table style="width:585px;" ><tr><td style="padding:10px;background-color:#113797;color:white;">New &amp; Used Vehicles</td><td style="padding:10px;background-color:#113797;color:white;">Term in Months</td><td style="padding:10px;background-color:#113797;color:white;">APR* As Low As</td><td style="padding:10px;background-color:#113797;color:white;">Monthly Payment Per $1000 Borrowed</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2008 and NEWER Vehicle Purchases</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">Up to 72 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">3.24%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$17.28</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2008 and NEWER Vehicle! 
    Purchases</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">64 - 72 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">4.29%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$15.69</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2007 and OLDER Vehicle Purchases</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">Up to 72 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">5.49%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$18.20</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2007 and OLDER Vehicle Purchases</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">64 - 72 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">5.99%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$16.46</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2011 &amp; 2010 REFINANCES</td><td bgcolor=! 
"#e5f1ff" style="padding:10px;height:100%;">Up to 63 Months</t! 
d><td bg 
color="#e5f1ff" style="padding:10px;height:100%;">4.99%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$18.08</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2011 &amp; 2010 REFINANCES</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">64 - 72 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">5.49%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$16.34</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2008 - 2009 REFINANCES</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">Up to 60 Months</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">5.99%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$19.33</td></tr><tr><td bgcolor="#e5f1ff" style="padding:10px;color:black;height:100%;">2007 &amp; older Vehicle REFINANCE</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">Up to 60 Months</td><td bgcolor="#e5f1ff" style="padding:10px! 
;height:100%;">6.99%</td><td bgcolor="#e5f1ff" style="padding:10px;height:100%;">$19.80</td></tr></table></body></html> 
+1

¿En qué cliente de correo electrónico lo está viendo? A diferencia de los navegadores, los clientes de correo electrónico no parecen tener los motores de renderizado actualizados regularmente y pueden presentar todo tipo de peculiaridades extrañas; sin embargo, usted está haciendo las cosas correctas, pero he encontrado que el formato más confiable para HTML en los correos electrónicos es HTML 4 con ninguno o, como máximo, CSS en línea. – CD001

+0

Me acabo de dar cuenta de que por alguna extraña razón hay una explosión en mi mesa. Me pregunto por qué diablos está ahí. –

+0

Al igual que en un experimento, pruebe los atributos de BGCOLOR inferiores: el hecho de que las etiquetas '
' son indicaciones cerradas de que está utilizando XHTML y, en ese caso, debe tener formato XML y, por lo tanto, los atributos deben ser minúsculas . Probablemente no hará ninguna diferencia, pero los clientes de correo electrónico son peculiares :) – CD001

Respuesta

26

Odio responder a mi propia pregunta pero encontré una solución al problema, y ​​con suerte alguien puede usar esta solución para deshacerse de los dolores de cabeza que esto causa.

El problema se debe al uso de la función mail(). Cuando trato de enviar el correo electrónico, tengo una larga cadena de código html. DE HECHO, DEMASIADO LARGO! Cuando paso de 78 caracteres a BANG! aparece y luego se conecta con mi html o css. RFC 2822

La resolución es cambiarlo a base-64 codificar los datos o agregar \ r \ n en mis largas líneas de código html. De cualquier forma, se resuelve el problema.

¡Gracias por la ayuda a todos!

+1

Tuve el mismo problema y pude resolverlo con solo \ n al final de las líneas largas. Leí aquí http://drupal.org/node/31524 que los correos electrónicos necesitan un salto de línea después de 998 caracteres para evitar el problema. ¡Gracias por publicar tu respuesta! – Dan

+0

@Andrew Threadgill - estoy corriendo en el mismo problema, ¿cómo cambiaste el código HTML a la codificación de base 64? ¿Alguna función? – user2341103

+0

No es necesario si desea usar \ n. –

3

parece que no es un retorno de las células ofensivos Así que trate de añadir altura: 100% a ellos para que estén completamente llenos. Se podría solucionar este problema mediante el ajuste de este código

<td style=\"padding:10px;background-color:#113797;color:white;\"> 

Para

<td style=\"padding:10px;background-color:#113797;color:white;height:100%;\"> 

Esto debería resolver su problema.

+1

Las celdas de tabla son siempre la altura completa de la fila que son y el ancho completo de su columna principal. –

2

Elimina todo el estilo de CSS, muchos motores de procesamiento de correo electrónico fallan con él. Use un diseño simple de mesa vieja.

Uso <font color="black">blah</font> en lugar de estilo color, utilice <table cellpadding="10"> en lugar de estilo padding, bgcolor en lugar de utilizar el estilo background-color.

Establezca bgcolor en toda la TABLA, no TDs.

+0

Sí, esto funciona. No sabía que era una molestia tener CSS en un correo electrónico HTML. La mayoría de los lugares a los que he hecho referencia en línea suelen estar bien. –

2

Aquí está un ejemplo de cómo crear una base 64 codificado por correo electrónico en:

<?php 

$html = "<p>The <b>quick</b> <em>brown</em> <u>fox</u> jumped right over the lazy dog.</p><hr />"; 

$to = "[email protected]"; 
$cc = "[email protected]"; 
$bcc = "[email protected]"; 
$from = "[email protected]"; 

$subject = "This is a MIME encoded email"; 
$boundary = str_replace(" ", "", date('l jS \of F Y h i s A')); 
$newline = "\r\n"; 

$headers = "From: $from$newline". 
      "Cc: $cc$newline". 
      "Bcc: $bcc$newline". 
      "MIME-Version: 1.0$newline". 
      "Content-Type: multipart/alternative;". 
      "boundary = \"$boundary\"$newline$newline". 
      "--$boundary$newline". 
      "Content-Type: text/html; charset=ISO-8859-1$newline". 
      "Content-Transfer-Encoding: base64$newline$newline"; 

$headers .= rtrim(chunk_split(base64_encode($html))); 

mail($to,$subject,"",$headers); 

?> 

me encontré con este código en el siguiente sitio:

https://ctrlq.org/code/19840-base64-encoded-email

Configuración de su correo electrónico para estar Based64 ¡Codificado eliminará el '!' Aleatorio siendo agregado a los correos electrónicos.

+0

Mientras el enlace mi oferta una solución a la pregunta, esta no es una respuesta bien escrita. Debe agregar la parte más relevante del enlace a su respuesta. –

+0

Ok, gracias, corregiré mi respuesta – colinam1992

+0

Genial, si quieres ayuda, puedes leer esto: [¿Cómo escribo una buena respuesta?] (Http://stackoverflow.com/help/how-to-answer) –

Cuestiones relacionadas