2

モバイル用に最適化しようとしているWebアプリケーションがあり、Androidフォンのデフォルトのメールクライアントで簡単なmailto機能が機能していません。Gmailクライアントでは機能しますが、Exchangeメールと統合するためのネイティブクライアントでは機能しません。(iphone fwiwでも機能するようです。)ネイティブクライアントで起こっていることは、キャリッジリターン後のすべてが遮断されることです。だから私は次のようなものを持っていると言います:

    sendLinkByEmail: function (subject, message, url)
    {
        var parsedMessage = encodeURIComponent("Isn't this cool?\n I am sending you an email!");
        var emailLink = "mailto:?Subject=" + encodeURIComponent(subject) + "&body=" + parsedMessage;
        window.location = emailLink;
        return false;
    }

Gmailアプリで開くことを選択した場合、期待どおりの結果が得られます。

かっこいいじゃないですか。

私はあなたにメールを送信しました!

しかし、メールアプリで開くと、

かっこいいじゃないですか。

以上です。

\ nの代わりに%0Aまたは%0D%0Aを使用する場合、またはencodeURIComponentを使用しない場合も同じことが起こります(たとえば、メッセージは文字通り「Foo%0D%0ABar」です。Fooを取得します)。

その愚かなメールクライアントが何をしているのか理解できません!誰か考えがありますか?

どうもありがとう!!!


私の問題はさらに深刻であることに気づきました。モロニックメールクライアントは、エンコードされた&(%26)の後でさえも切り捨てます。したがって、関数の要点であるURLも埋め込むことができません。

Webアプリケーションからメールクライアントを開くためのmailtoの代替手段はありますか?

4

1 に答える 1

1

私の経験では、mailto: リンクで \n を使用した場合の成功は、メール クライアントによって異なります。\n の代わりに %0d を使用するのが最も効果的であることがわかりましたが、それでもすべてのクライアントがそれをサポートするわけではありません。

フォーマットが重要な場合、mailto: リンクは必要ありません。

于 2012-05-08T22:27:21.237 に答える