2012-04-18 2 views
12

Я устанавливаю тело сообщения электронной почты, используя значения из формыJavascript добавления LINEBREAK в MAILTO тело

firstname = bob 
    lastname = dole 

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

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

Если я делаю «предупреждение (ebody);» Я получаю разлад строки между именем & , но когда он открывает Outlook, вся цепочка появляется без прерывания линии в теле письма.

Я тоже попробовал \ n. есть ли что-то, что может дать строка break?

Заранее спасибо

+0

Просто идея, пытались ли вы избежать обратный слэш как '\\ г \\ n'? – inhan

+1

Вы пробовали кодировать символы? -> '% 0D% 0A' – GNi33

+2

Является ли текст MIME для текста вашего сообщения? Outlook может пытаться интерпретировать как богатый текст. – g13n

ответ

32

RFC 2368 говорит, что содержимое содержимого mailto должно быть закодировано в URL-адресе, используя форму% -escaped для символов, которые обычно кодируются в URL-адресе. Эти символы включают пробелы и (как явно указано в разделе 5 из 2368) CR и LF.

Вы можете сделать это, написав

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

но проще и лучше иметь JavaScript сделать вылетающему для вас, как это:

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

Мало того, что избавит вас от необходимости идентифицировать и искать шестнадцатеричные значения символов, которые должны быть закодированы в вашем фиксированном тексте, он также кодирует любые дурацкие символы в переменных firstname и lastname.

+0

спасибо за ваш путеводитель, он отлично работает – srini

1

Я бы ожидать перспективы попробовать и выводить это как HTML/форматированный текст так что в этом случае вам нужно будет что-то вроде следующего (включая 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

спасибо за ваш путеводитель, он отлично работает – srini

5

Вы можете использовать кодировку %0D%0A для разрывов строк.

firstname = 'Aung '; 
lastname = 'Kyaw Zaw'; 

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

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

http://www.w3schools.com/tags/ref_urlencode.asp

+0

спасибо за ваш путеводитель – srini

Смежные вопросы