5

RCP アプリケーションのユーザーに、問題の詳細をサポート部門に送信することをお勧めします。この目的のために、標準エラー ダイアログに「サポートに連絡」ウィジェットを追加しました。

Java 6 の JDIC 呼び出しを使用して、URI ヘッダーを使用してスタックトレースを送信することができましたDesktop.getDesktop().mail(java.net.URI)。これにより、ユーザーのメール クライアントが起動し、コメントを追加して送信できるようになります。

私は電子メールクライアントを起動するのが好きです。なぜなら、それはユーザーが慣れているものであり、ユーザーに関する多くのこと (署名、連絡先の詳細など) をサポートに伝えるからです。Java Mail を同梱したくはありません。

私がやりたいのは、ログ ファイルとスタック トレースをファイルとして添付することです。そのため、最大長の要件はなく、ユーザーには見栄えの良い電子メールが表示され、サポート部門はより多くの情報を扱うことができます。

私が取っているアプローチでこれを行うことはできますか?それとももっと良い方法がありますか?

編集:私はOSGiコンテキストにいるので、JDICのバンドルが必要になります。可能であれば、依存関係をできるだけ少なくして出荷したいと考えています。また、複数のプラットフォーム用に JDIC をバンドルすることは、特にこのような小さな機能の場合は面白くありません。

JavaMail が適切かもしれませんが、これは企業クライアントのデスクトップ上にあるという事実のためです。構成のセットアップ/検出は、透過的で、自動で、信頼できるものでなければなりません。JavaMailに関しては、設定は手動のみのようです。これは事実ですか?

私が最も気に入っている答えはDesktop.open()、*.eml ファイルに を使用することです。残念ながら、Outlook Express (Outlook ではなく) は eml ファイルを開きます。これが通常なのか、Windows がこのような EML ファイルを開くように設定されているデフォルトなのかはわかりません。これは普通ですか?または、a) 生成が簡単で、b) ユーザーが既に使用しているのと同じ電子メール クライアントでデフォルトで開く、別のテキスト ベースの形式はありますか?

4

6 に答える 6

3

一時的な.emlファイルとDesktop.getDesktop()。open(emlFile)を保存できます。
編集:ご指摘のとおり、残念ながら、これによりOutlookではなくOutlookExpressが開きます。
ただし、Windows Liveメールがインストールされている場合は、それが使用されます。

于 2008-09-17T10:57:12.647 に答える
1

同じ問題を処理するまったく異なる方法として、XML-RPCインターフェイスを備えたバグトラッカーを使用し、(RCPも)アプリはカスタム送信ダイアログを使用してバグトラッカーと通信します。これは、ユーザーがログファイルを見つけなくても、問題の診断に役立つログファイルを送信できることを意味します。

ほとんどのバグトラッカーには、このようなものが用意されていると思います。私たちはJiraを使用しており、それはうまく機能します(どうやら、彼らは試してみるのを簡単にする無料のパーソナルバージョンをリリースしたばかりです)。

于 2008-09-17T18:31:46.267 に答える
1

JDK 6 を使用している場合 (そうすべきです)、Desktop API は JRE の一部になりました。詳細については、 http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/を参照してください。

于 2008-09-17T14:28:03.937 に答える
0

その方法を使用すると、次のようなURIで件名と本文を設定できます

mailto:me@here.com?SUBJECT=Support mail&BODY=This is a support mail

ただし、件名と本文の長さには制限があります。

この方法または同様の方法を使用してファイルを添付することを考える方法はありません(アプリにjavamailを追加せずに)

于 2008-09-17T10:38:07.467 に答える
0

JDIC は、ユーザーのプラットフォームで常に使用できるとは限りません。これを行う良い方法は、javamail API を使用することです。SUN によるこのチュートリアルで説明されているように、マルチパートの電子メール メッセージを送信できます。

添付ファイルの送信

于 2008-09-17T12:02:12.960 に答える
0
import java.awt.Desktop;
import java.io.File;
import java.net.URI;


public class TestMail {

    public static void main(String[] args) {
        try {       
         Runtime.getRuntime().exec(
                  new String[] {"rundll32", "url.dll,FileProtocolHandler",
                        "mailto:a@a.de?subject=someSubject&cc=a@a.de&bcc=a@a.de&body=someBodyText&Attach=c:\\test\\test.doc"}, null
                  );


        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
于 2010-10-25T12:31:24.697 に答える