símbolo simbolo saltos salto quitar quitado que power modificar mensaje los linea han este cómo como adicionales .net utf-8 outlook smtp

.net - simbolo - salto de linea word



Outlook autocleaning mis saltos de línea y arruinando mi formato de correo electrónico (10)

Agregar "/ t / r / n" (/ t para TAB) en lugar de "/ r / n" funcionó para mí en Outlook 2010.

Enviaré un correo electrónico usando el marco de redes de puntos. Aquí está la plantilla que estoy usando para crear el mensaje:

Date of Hire: %HireDate% Annual Salary: %AnnualIncome% Reason for Request: %ReasonForRequest% Name of Voluntary Employee: %FirstName% %LastName% Total Coverage Applied For: %EECoverageAmount% Guaranteed Coverage Portion: %GICoveragePortion% Amount Subject to Medical Evident: %GIOverage%

Cuando los mensajes se reciben en outlook, Outlook me dice "Se eliminaron los saltos de línea adicionales en este mensaje". Y el mensaje se muestra así:

Date of Hire: 9/28/2001 Annual Salary: $100,000 Reason for Request: New Hire Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For: $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000

Tenga en cuenta cómo Outlook elimina incorrectamente los saltos de línea necesarios después del nombre, EECoverageAmount, etc ...

Es importante que los destinatarios reciban un correo electrónico con el formato correcto, y debo suponer que algunos de ellos usan Outlook 2003. Tampoco puedo asumir que sabrán lo suficiente como para desconectar la función de limpieza automática para que el mensaje se formatee correctamente.

He visto estos mensajes en otros clientes de correo y se muestran correctamente

Más información:

  • Estoy usando UTF-8 BodyEncoding (msg.BodyEncoding = System.Text.Encoding.UTF8)
  • El msg.Body se está leyendo desde un archivo de texto codificado en UTF-8, y cada línea termina con un crlf.

Pregunta: ¿Cómo cambio el formato del mensaje para evitar este problema?


Cambie la terminación de línea de crlf a cr o lf.

Sospecho que la parte superior del correo electrónico solo usa cr (o lf), y Outlook espera que el resto del correo electrónico siga el mismo formato.


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>


Comience cada línea con 2 espacios y las perspectivas serán "engañadas" para mantener el formato.

Entonces cambia

Date of Hire: %HireDate% Annual Salary: %AnnualIncome% Reason for Request: %ReasonForRequest% Name of Voluntary Employee: %FirstName% %LastName% Total Coverage Applied For: %EECoverageAmount% Guaranteed Coverage Portion: %GICoveragePortion% Amount Subject to Medical Evident: %GIOverage%

a

Date of Hire: %HireDate% Annual Salary: %AnnualIncome% Reason for Request: %ReasonForRequest% Name of Voluntary Employee: %FirstName% %LastName% Total Coverage Applied For: %EECoverageAmount% Guaranteed Coverage Portion: %GICoveragePortion% Amount Subject to Medical Evident: %GIOverage% ^^ <--- Two extra spaces at the start of every line

Aquí está el article que encontré al investigar este problema, que profundiza un poco más que mi respuesta.


Esta respuesta es sobre cómo "desactivar" la característica del cliente de Outlook.

  • Vaya a Herramientas -> "Opciones ..."
  • En la pestaña "Preferencias", haga clic en "Opciones de correo electrónico ..."
  • Desmarque la casilla "Eliminar saltos de línea adicionales en mensajes de texto sin formato".
  • Presione Aceptar

FYI: estoy usando Outlook 2007


Estoy viendo el mismo problema al generar un correo electrónico de texto sin formato y luego leerlo con Outlook 2003 SP3. Parece que puede evitar el proceso de eliminación manteniendo la longitud de la línea por debajo de 40 caracteres. Puede que no siempre sea práctico.


Expandir la respuesta de , ya que creo que los mensajes de HTML son aún más omnipresentes y aceptados ahora que en 2008 cuando se publicó esa respuesta. Aquí hay un pequeño fragmento de c # para ayudar a convertir el cuerpo y enviar el mensaje en formato HTML:

body = string.Format("<font face=''calibri,arial,sans-serif''>{0}<font/>", body.Replace("/r/n", "<br>")); using (var smtpClient = new SmtpClient() { Host = smtpHost }) using (var msg = new MailMessage(from, emailDistribution, subject, body) { IsBodyHtml = true }) smtpClient.Send(msg);


Mi texto incluye ''/ r / n'', pero Outlook 2010 no representa un salto de línea. Cree tokens de líneas delimitadas por ''/ r / n'' y tokens de envolvente mediante etiquetas HTML Paragraph. Mi formato de correo electrónico es HTML. Estoy generando HTML Body para mi correo electrónico en el siguiente código.

string[] tokens = Regex.Split(objTickt.Description, "/r/n"); if (tokens.Length > 0) { foreach (string line in tokens) { //htmlTW.WriteEncodedText(objTickt.Description.Replace("/r/n", "/n/n")); htmlTW.RenderBeginTag(HtmlTextWriterTag.P); htmlTW.WriteEncodedText(line); htmlTW.RenderEndTag(); } }


Siempre he tenido mejor suerte formateando correos electrónicos como html. Aún puede tener el problema del usuario final de tener que configurar el cliente para que permita el formato html, pero generalmente están más familiarizados con esto, ya que muchos correos electrónicos tienen formato html. También tiene un poco más de trabajo al agregar las etiquetas html, pero el resultado final es mucho más controlable.

@ephemient también sugiere: enviar como HTML y texto sin formato. Los buenos clientes mostrarán lo último, Outlook mostrará lo primero, todos estarán contentos (excepto el programador que debe hacer más trabajo).


También puede insertar un carácter de tabulación al final de la línea (justo antes del CR LF). Este espacio en blanco adicional estará al final de la línea y, por lo tanto, no será visible para el usuario. Puede preferir tener que insertar espacios a la izquierda. Tenga en cuenta que un solo espacio no es suficiente (aunque tal vez varios espacios ayudarían, no lo sé).