24

フォームの値を使用してメールの本文を設定しています

  firstname = bob
  lastname = dole

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

  window.location.href = 'mailto:myemail@mycompany.com?subject=test
  email&body=' + ebody;

「alert(ebody);」を実行すると 名と姓の間に改行が入りますが、Outlookを開くと、ebody文字列全体がメール本文に改行なしで表示されます。

私も\n試してみました。改行できるものはありますか?

前もって感謝します

4

4 に答える 4

50

RFC 2368では、通常 URL でエンコードされる文字に % エスケープ形式を使用して、mailto 本文のコンテンツを URL エンコードする必要があると述べています。これらの文字には、スペースと (2368 のセクション 5 で明示的に示されているように) 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);

これにより、固定テキストでエンコードする必要がある文字の 16 進値を特定して検索する必要がなくなるだけでなく、 変数firstnamelastname変数で間抜けな文字をエンコードすることもできます。

于 2012-04-19T02:42:25.237 に答える
9

%0D%0A改行にはエンコーディングを使用できます 。

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

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

window.location.href = 'mailto:myemail@mycompany.com?subject=testemail&body=' + ebody;

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

于 2012-05-07T07:10:21.907 に答える
2

Outlook はこれを html/リッチ テキストとして出力しようとするので、その場合は次のようなものが必要になります (urlencoded br タグを含む):

 firstname = bob
  lastname = dole

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

  window.location.href = 'mailto:myemail@mycompany.com?subject=test
  email&body=' + ebody;
于 2012-04-19T00:08:45.913 に答える