0

flex からファイルを電子メールで送信する際に問題が発生しました。現在、以下のコードを使用しています。bodyVar が 1967 未満の場合、電子メールは問題なく入力されています。このコードを呼び出すと、bodyVar にあるものを含む Outlook メッセージが開きます。1967 年以降の場合は、空白のページで開きます。

var mailMsg:URLRequest = new URLRequest("mailto:");
var variables:URLVariables = new URLVariables();
variables.subject = subVar;
variables.body = bodyVar;
mailMsg.data = variables;
mailMsg.method = URLRequestMethod.GET;
navigateToURL(mailMsg, "_self");

私は Firefox を使用していますが、この 1967 はそこから来ていると思います。IE を使用していた場合、メールは開かれません。

多くのテキストを送信できるフレックスでメールを送信する方法を知っている人はいますか? 書式設定や画像などに煩わされることはありません。テキストを送信できるようにする必要があるだけです

ありがとう

編集

URLVariables オブジェクトを使用しない別の方法を示すこのコードを見つけました。ここでの制限はhttpにあると思います

var s:String = "";
s += "mailto:";
s+= sendTo.text;
s+= "?";
s+= "subject=";
s+= subjectVar;
s+= "&";
s+= "body=";
s+= bodyVar;
navigateToURL(new URLRequest(s));

EDIT 2 明確にするために、ユーザーの電子メールクライアントを使用して新しい電子メールメッセージを開きたいと思います。そのため、Outlook がインストールされている場合は、送信するテキストを含む Outlook メッセージを開いてほしいと思います。

4

2 に答える 2

1

私はしばらく前にこの正確なことに出くわしました。深く掘り下げた後、問題を発見しました:

問題は、Outlook (Internet Explorer など) には 2048 文字の URI 文字制限があることです (合計の長さが途切れる理由です)。Outlook の受信者の最大長は 75 です。

したがって、ハードリミットは見通しから来ています。Firefox が既定のブラウザーとして設定されている場合にパフォーマンスが異なる理由は、Firefox が Internet Explorer よりもはるかに多くの文字をサポートしているためだと思います。したがって、Firefoxを介して作成されます...その後、Outlookで終了します。しかし、IE を使用すると、同じ小さな文字制限があるため、IE で停止します。

空白で表示される理由は、これらの制限のいずれかに達すると、ブラウザーが mailto:long 文字列を mailto:"" (空の文字列) に変換するためです。

私がお勧めします:

a) UI の文字数制限を小さくする b) 代わりにサーバー側スクリプトを使用してメールを送信する。

これは、さまざまなブラウザーと電子メール クライアントのすべてと、対応する文字数制限を示すリンクです。制限ページへのリンク

于 2013-01-04T19:30:38.857 に答える
1

アイデアの組み合わせとして:

  1. アドレスの選択、テキストの編集などの機能を備えたフレックス パネル/ウィンドウにメッセージ テキストを表示します。
  2. この情報をサーバー側のオブジェクト (PHP メール、MAPI など) に送信して配信します

本質的に、すべてを見ることができるフレックスでメッセージを作成/編集します。次に、より堅牢な方法で送信します。

ところで: サーバー側は、サーバーがあることを意味するものではありません。むしろ、実際のメッセージの作成と配信のために、flex の外部に何らかの機能があることを意味します。

于 2013-01-03T15:42:41.163 に答える