129

mailtoリンクで複数の行を正しく機能させるのに問題がある

私の場合、Outlookのデフォルトのメールリーダーでテストしています。

以下はアンカーhrefに入れられます:

mailto:email@address.com?&subject=test&body=type%20your&body=message%20here

メール本文には「ここにメッセージ」のみが表示されます。(私がクロムまたはIEを使用するかどうか)

考え?

4

4 に答える 4

226

URLエンコードを使用して、改行をとしてエンコードできます%0A

mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here

上記は多くの場合に機能するように見えますが、ユーザーolibreは、mailto URIスキームを管理するRFCで、 (改行)の代わりに(キャリッジリターン+改行)を使用するように指定されていると指摘しています。参照:改行表現%0D%0A%0A

于 2012-04-27T19:04:37.537 に答える
45
  1. bodymailto文字列内で単一のパラメータを使用する
  2. %0D%0A改行として使用

mailtoURIスキームは、RFC2368(1998年7月)およびRFC6068 (2010年10月)によって指定されています。以下は、この最後のRFCのセクション5の 抜粋です。

[...]メッセージ本文の改行は。でエンコードする必要があります"%0D%0A"
実装では、本文に末尾がない場合でも、メッセージの本文に最後の改行を追加できます"%0D%0A"[...]

セクション6の同じRFCの例も参照してください。

<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>

上記のmailto本文は以下に対応します。

send current-issue
send index
于 2014-12-12T15:49:23.540 に答える
20

ボディラインを取得するには、escape()を使用します

body_line =  escape("\n");

それで

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
于 2013-10-04T11:41:54.817 に答える
16

これは私がしていることです、追加\nして使用するだけですencodeURIComponent

var emailBody = "1st line.\n 2nd line \n 3rd line";

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;

encodeURIComponentドキュメントを確認してください

于 2014-10-03T16:59:56.827 に答える