java email outlook newline line-breaks

java - ¿Cómo formateo una cadena en un correo electrónico para que Outlook imprima los saltos de línea?



email newline (27)

Agregar "/ t / r / n" (/ t para TAB) en lugar de "/ r / n" funcionó para mí en Outlook 2010. Nota: agregar 3 espacios al final de cada línea también hace lo mismo pero parece un hack de programación.

Intento enviar un correo electrónico en Java, pero cuando leo el cuerpo del correo electrónico en Outlook, se ha eliminado de todos mis saltos de línea. Estoy poniendo / n al final de las líneas, pero ¿hay algo especial que deba hacer aparte de eso? Los receptores siempre usarán Outlook.

Encontré una página en microsoft.com que dice que hay una función de "Eliminar saltos de línea" en Outlook. ¿Esto significa que no hay una solución para evitar eso que no sea revisar esa configuración?

Gracias


Coloque el texto en <pre> etiquetas <pre> y Outlook formateará y mostrará el texto correctamente.

Lo definí en CSS en línea en HTML Body como:

CSS:

pre { font-family: Verdana, Geneva, sans-serif; }

Definí la familia de fuentes para tener el conjunto de fuentes.

HTML:

<td width="70%"><pre>Entry Date/Time: 2013-09-19 17:06:25 Entered By: Chris worklog mania ____________________________________________________________________________________________________ Entry Date/Time: 2013-09-19 17:05:42 Entered By: Chris this is a new Worklog Entry</pre></td>


Debe enviar correos electrónicos HTML. Con <br /> s en el correo electrónico, siempre tendrá sus saltos de línea.


Debido a que es una consulta, solo funcionan el porcentaje de caracteres escapados, significa que% 0A le da un salto de línea. Por ejemplo,

&lt;a href=&quot;mailto:[email protected]?Subject=TEST&amp;amp;body=Hi there,%0A%0AHow are you?%0A%0AThanks&quot;&gt;email to me&lt;/a&gt;


El /n funciona en gran medida para nosotros, pero Outlook a veces se encarga de eliminar los saltos de línea como usted dice.


El truco es usar la funcionalidad encodeURIComponent() de js:

var formattedBody = "FirstLine /n Second Line /n Third Line"; var mailToLink = "mailto:[email protected]?body=" + encodeURIComponent(formattedBody);

RESULTADO:

FirstLine SecondLine ThirdLine


En ocasiones, debe ingresar / r / n dos veces para forzar a outlook a hacer el corte.

Esto agregará una línea vacía pero todas las líneas se romperán.


Había estado luchando con todas las soluciones anteriores y no había nada de ayuda aquí, porque utilicé una variable String (texto sin formato de un JTextPane) en combinación con el formato "text / html" en mi biblioteca de correo electrónico.

Entonces, la solución a este problema es usar "text / plain", en lugar de "text / html" y no es necesario reemplazar los caracteres devueltos:

MimeBodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(message, "text/plain");


He estado peleando con esto hoy. Llamemos a la conducta de eliminar los saltos de línea adicionales "continuación". Un poco de experimentación encuentra el siguiente comportamiento:

  • Cada mensaje comienza con la continuación desactivada.
  • Las líneas de menos de 40 caracteres no desencadenan la continuación, pero si la continuación está activada, se eliminarán sus saltos de línea.
  • Las líneas de 40 caracteres o más activan la continuación. Permanece encendido hasta que ocurre un evento para apagarlo.
  • Las líneas que terminan con un punto, signo de interrogación, signo de exclamación o dos puntos desactivan la continuación. (¿Outlook supone que es el final de una oración?)
  • Las líneas que desactivan la continuación comenzarán con un salto de línea, pero volverán a activar la continuación si tienen más de 40 caracteres.
  • Las líneas que comienzan o terminan con una pestaña desactivan la continuación.
  • Las líneas que comienzan con 2 o más espacios desactivan la continuación.
  • Las líneas que terminan con 3 o más espacios desactivan la continuación.

Tenga en cuenta que probé todo esto con Outlook 2007. YMMV.
Por lo tanto, si es posible, finalice todos los elementos de viñetas con un signo de puntuación que termina la frase, una pestaña o incluso tres espacios.


He usado html line break en lugar de "/ n". Funcionó bien


Microsoft Outlook 2002 y superior elimina "saltos de línea adicionales" de los mensajes de texto de forma predeterminada (kb308319) . Es decir, Outlook parece simplemente ignorar la alimentación de línea y / o las secuencias de retorno de carro en mensajes de texto, ejecutando todas las líneas juntas.

Esto puede causar problemas si intenta escribir código que generará automáticamente un mensaje de correo electrónico para que lo lea alguien que use Outlook.

Por ejemplo, suponga que desea suministrar piezas de información separadas, cada una en líneas separadas para mayor claridad, como esta:

¡La transacción necesita atención!
Fecha de publicación: 1/30/2009
Monto: $ 12,222.06
TransID: 8gk288g229g2kg89
Código Postal: 91543

Su destinatario de Outlook verá la información todos juntos, de la siguiente manera:

¡La transacción necesita atención! Fecha de publicación: 1/30/2009 Cantidad: $ 12,222.06 TransID: 8gk288g229g2kg89 Código postal: 91543

No parece haber una solución fácil. Las alternativas son:

  1. Puede suministrar dos conjuntos de saltos de línea entre cada línea. Eso impide que Outlook combine las líneas en una línea, pero luego muestra una línea en blanco adicional entre cada línea (creando el problema opuesto). Por "suministrar dos conjuntos de saltos de línea" quiero decir que debe usar "/ r / n / r / n" o "/ r / r" o "/ n / n" pero no "/ r / n" o "/ n / r ".
  2. Puede proporcionar dos espacios al comienzo de cada línea en el cuerpo de su mensaje de correo electrónico. Eso evita introducir una línea en blanco adicional entre cada línea. Pero esto funciona mejor si cada línea en su mensaje es bastante corta, porque el usuario puede obtener una vista previa del texto en una ventana de Outlook muy estrecha que envuelve el final de cada línea hasta la primera posición en la línea siguiente, donde no lo hará alinearse con sus líneas con sangría de dos espacios. Esta estrategia se ha utilizado para algunos newsletters .
  3. Puede renunciar al uso de un formato de texto plano y usar un formato html.

No estoy seguro de si se mencionó anteriormente, pero Outlook tiene una configuración de casilla de verificación llamada "Eliminar saltos de línea adicionales en mensajes de texto sin formato" y está marcada por defecto. Está ubicado en un lugar diferente para las diferentes versiones de Outlook, pero para 2010 ve a la pestaña "Archivo". Seleccione "Opciones => Correo" Desplácese hasta "Formato de mensaje" Desmarque la casilla de verificación.


Para Outlook 2010 y versiones posteriores, use / t / n en lugar de usar / r / n.


Prueba esto:

message.setContent(new String(body.getBytes(), "iso-8859-1"), "text/html; charset=/"iso-8859-1/"");

Saludos, Mohammad Rasool Javeed


Pruebe /r/c lugar de /n .

EDITAR: Creo que Robert Robert Wilkinson tenía razón. /r/n . La memoria ya no es lo que solía ser.



Si puede agregar un ''.'' (punto) al final de cada línea, esto parece impedir que Outlook arruine el formato del texto.


También tuve este problema con el tipo de texto simple / de texto. Anteriormente, utilicé "/ n / n" pero hubo dos saltos de línea. Luego, utilicé "/ t / n" y funcionó. Estaba usando StringBuffer en Java para anexar contenido.
El contenido se imprimió en la siguiente línea en el correo de Outlook 2010.


También tuve este problema con el tipo de texto sin formato / de texto. Feed de Formulario funcionó para mí.


Tengo una buena solución que probé, es simplemente agregar el Char (13) al final de la línea como en el siguiente ejemplo:

Dim S As String S = "Some Text" & Chr(13) S = S + "Some Text" & Chr(13)


Tuve el mismo problema y encontré una solución. Pruebe esto: %0D%0A para agregar un salto de línea.


si el mensaje es text / plain using, / r / n debería funcionar; si el tipo de mensaje es text / html, use < p/>


si el trabajo debe hacerse con texto formateado sin codificación html. se puede lograr fácilmente con el siguiente escenario que crea el elemento div sobre la marcha y utilizando el elemento <pre></pre> html para seguir formateando.

var email_body = htmlEncode($("#Body").val()); function htmlEncode(value) { return "<pre>" + $(''<div/>'').text(value).html() + "</pre>"; }


This debe ser útil para ti. intente con "% 0A" en lugar de "/ n". La verdadera fuente está here.

Debe agregar "% 0A" donde sea que necesite una nueva línea en su código. En tu caso

abcParameters.put(defConstants.REPORT_MESSAGE, "Invalid file sent by tt. Hence ffgghh was unable to process it : " + s+ "%0A" +e.getMessage().toString());


RESUELTO EN MI APLICACIÓN

En mi aplicación, estaba tratando de enviar un correo electrónico cuyo cuerpo del mensaje fue mecanografiado por el usuario en el área de texto. Cuando se envió el correo, Outlook eliminó automáticamente el salto de línea ingresado por el usuario.

por ejemplo, si el usuario ingresó
Yadav
Mahesh

outlook lo mostró como
YadavMahesh

Resolución: Cambié el carácter de salto de línea "/ r / n" por "/ par" (recuerde pulsar el espacio al final del código RTF "/ par") y se rescatan los saltos de línea.

Aclamaciones,
Mahesh


/ r / n no funcionará hasta que establezca el tipo de cuerpo como texto.

message.setBody(MessageBody.getMessageBodyFromText(msg)); BodyType type = BodyType.Text; message.getBody().setBodyType(type);


Necesita usar /r/n como solución.