2012-04-18 11 views
12

Soy la creación del cuerpo de un correo electrónico utilizando los valores de una formaJavascript adición de salto de línea en mailto cuerpo

firstname = bob 
    lastname = dole 

    ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname 

    window.location.href = 'mailto:[email protected]?subject=test 
    email&body=' + ebody; 

Si hago una "alerta (ebody);" Obtengo el salto de línea entre firstname & lastname, sin embargo, cuando abre outlook, toda la cadena ebody aparece sin un salto de línea en el cuerpo del correo electrónico.

Lo he intentado solo \ n también. ¿hay algo que puede dar ser una línea ruptura?

Gracias de antemano

+0

Sólo una idea, ¿trató de escapar las barras invertidas como '\\ r \\ n '? – inhan

+1

¿Intentó codificar los personajes? -> '% 0D% 0A' – GNi33

+2

¿El tipo MIME es texto/sin formato para su correo electrónico? Outlook podría estar tratando de interpretar como texto enriquecido. – g13n

Respuesta

32

RFC 2368 dice que el contenido del cuerpo de mailto debe estar codificado en URL, utilizando el formulario% -escaped para los caracteres que normalmente se codificarían en una URL. Esos caracteres incluyen espacios y (como se menciona explícitamente en la sección 5 de 2368) CR y LF.

Usted puede hacer esto escribiendo

ebody = 'First%20Name:%20' + firstname + '%0D%0A' + 'Last%20Name:%20' + lastname; 

pero es más fácil y mejor tener JavaScript Es el escape para que, de esta manera:

ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname; 
ebody = encodeURIComponent(ebody); 

No sólo habrá que salvar de tener que identifique y busque los valores hexadecimales de los caracteres que necesitan ser codificados en su texto fijo, también codificará cualquier carácter ridículo en las variables firstname y lastname.

+0

gracias por su guía funciona bien – srini

1

que cabe esperar perspectivas para tratar de la producción de este como html texto/ricos por lo que en ese caso se necesitaría algo como lo siguiente (incluyendo una etiqueta br urlencoded):

firstname = bob 
    lastname = dole 

    ebody = 'First Name: ' + firstname + '%3C%2Fbr%3E' + 'Last Name: ' + lastname 

    window.location.href = 'mailto:[email protected]?subject=test 
    email&body=' + ebody; 
+0

gracias por su guía funciona bien – srini