2010-08-26 12 views
7

Tengo una lista (errors) que imprimo en la pantalla y la envío en el cuerpo de un correo electrónico. Pero primero separar los elementos de la lista con un carácter de nueva línea:Nueva línea aparece en la pantalla pero no en el correo electrónico

"\n".join(errors) 

luego imprimirlo en la consola y enviarlo como un correo electrónico. En la consola Parece delimitada por líneas nuevas:

Error generating report 
Another error 

En el correo electrónico, sin embargo, no muestran ...

Error generating report Another error 

¿Qué está pasando?

Editar:

Para complicar más las cosas, sólo se dio cuenta de que se envían correos electrónicos, uno de los cuales muestra la nueva línea y uno de los cuales no lo hace!

sendEmail(SUPPORT_EMAIL_ADDRESS, "application terminated unexpectedly.", \ 
        "The script will exit.\n\nError Message:\n%s" % \ 
        "\n".join(errors)) 
sendEmail(USERS_EMAIL_ADDRESS, "report is delayed.", 
        "\n".join(errors), 
        "html", [], [], SUPPORT_EMAIL_ADDRESS) 

La primera las tiene, mientras que la segunda no. ¿Esto es debido al formato html en el segundo ...?

+4

¿Su correo electrónico es html formateado? Eso puede afectar la presentación de nuevas líneas ... –

+0

@Eric Snow - Estaba actualizando como lo comenté ... parece que ha resuelto mi problema :) Si lo publica como respuesta, lo votaré y lo aceptaré. – froadie

Respuesta

11

Si su correo electrónico es el formato HTML a continuación, que afectaría a la presentación de la nueva línea.

10

Dos cosas que me gustaría probar:

  • intento con CRLF ("\r\n") en lugar de sólo LF

  • asegurarse de que su correo electrónico no se envía en modo HTML, o, en caso afirmativo, tratar la sustitución de la "\n" con "<br>"

+0

¡Gracias por su ayuda! Estaba en modo HTML y las etiquetas de salto de línea hicieron el truco – froadie

5

¿Está leyendo el correo electrónico en Outlook? Outlook eliminará "saltos de línea adicionales" (es decir, los saltos de línea que considere innecesarios por alguna regla misteriosa) del correo de texto sin formato. Para evitar esto, convierto el correo como logs a HTML antes de enviarlo. Esto es muy simple; solo envuélvalo en < PRE> ... </PRE> etiquetas (con encabezados HTML apropiados, por supuesto).

+0

Outlook también suele decirle al usuario que eliminó los saltos de línea adicionales en el área de notificación en la parte superior del mensaje, y si hace clic debería haber una opción para restaurar eso. Creo que también hay una opción escondida en las opciones de correo electrónico Superlanzadas de Arcane Mystic que te permite alternar esta función. – FrustratedWithFormsDesigner

0

Para este tipo de problema, me parece que mirar el código nativo en el correo electrónico ayuda mucho. Yo uso Eudora para esto, ya que almacena todo el correo electrónico en formato de texto nativo. Puedo ver el formato sin tener que navegar por el cliente de correo electrónico al abrir el buzón de correo electrónico en el Bloc de notas o algún otro editor de texto. Si se encuentra en un entorno UNIX, podría ser mejor consultarlo en vi u otro editor de texto básico.
Todo correo electrónico es texto puro y se convierte a lo que ve por el cliente eMail.

Cuestiones relacionadas