2011-10-30 7 views
0

私のデータベースには連絡先があります。私は私のクライアントのためのカスタム電子メールテンプレートを構築するアプリケーションをしたい。例えばJavaを使用してOutlookとの差し込みでメールを送信

:テンプレートがセットアップされ

Dear <<name>>, 

This is to inform you that our <<company name>>, located in <<address>> ... 

Sincerely, 
<<sender>> 

た後、私はその後、私のメールに体としてこれを使用することができます

私のクライアントは、会社名、住所などのカスタムプレースホルダを設定することができます。その後、受信者はデータベースからフェッチされます。

私はMAIL URIを作成し、ユーザーのデフォルトの電子メールクライアントを使用して開くことができるjava.awt.Desktopパッケージを認識しています。問題は、どのように私はそれに差し込み印刷を組み込むことができますか?既存の図書館やその解決方法について教えてください。

+1

AWTアプリ、コマンドライン、サーブレットなどと同じようにSwingを実行します。別の言い方をすると、[タグ:スイング]タグは質問とは関係なく、削除されました。 –

答えて

0

メールを送信するためにJavaMailライブラリを使用します。 「JavaMail example」などを検索すると、多くの例が見つかります。Sending email via Gmail SMTP exampleなどです。プレースホルダーに関しては、単にString.replace関数を使用します。

+0

私はString.replace関数についても考えましたが、複数の受信者がいる場合はどうなりますか?それぞれの名前がそれぞれの受取人の名前に置き換えられるように送付します。私は、各受信者に対してユーザーのデフォルトクライアントの別のインスタンスを使用して開くことはできません。私はGmail SMTP経由で送信することはできませんので、それは電子メールクライアントで開くための前提条件です。 – jamesv

+0

@jamesv複数の受信者がいる場合は、複数のメールを送信してください。あなたは間違いなくメールを送信するために電子メールクライアントでメールを開く必要はありません。リンクしたJavaMailの例を見てください。メールクライアントアプリケーションとは関係ありません。 –

+0

こんにちは、それは私のクライアントが望んでいるので、電子メールクライアントで開くための前提条件です。私は、それが不可能であることを彼に話す前に、これに対する解決策があるかどうかを知りたいだけです。 – jamesv

0
  1. テンプレート内の変数の設定方法を制御する必要があります。私はあなたが任意の文字列を解析し、変数があるかどうかを調べることはできないと思います。したがって、ユーザーが変数を追加しているときは、プログラムが理解できる変数を電子メールの本文に挿入してください。そういうわけではありませんが、私はそれを完全性のために追加すると思っています。

  2. ベロシティテンプレートとして電子メール本文を保存し、速度テンプレート言語を追加した変数に準拠させることができます。複雑なテンプレートが設定されている場合、Velocityはstring.replace()より簡単です。単純なものであれば、String.replace()が行います。 http://velocity.apache.org/

  3. 次に、JavaプログラムからJavaメールライブラリを直接送信するか、デスクトップクラスを使用してボックスのデフォルトの電子メールクライアントを起動します。

EDIT:

Outlookを開きたい場合は、あなたがDesktop.mail()APIを使用する必要があります。あなたは

mailto:[email protected]?SUBJECT=Happy New Year!&BODY=Happy New Year, Duke! 

は、詳細はこちらをご覧適切なURIを構築し、Desktop.mail()に渡すことで、Outlookの電子メールの送信ウィンドウ内に、CC、BCC、件名と本文のフィールドを事前移入することができます: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

複数の受信者の場合、電子メールアドレスをカンマで区切ると効果があります。そうでない場合は、セミコロンで試してください。 Outlookはセミコロンを使用しています。

+0

こんにちは、それはOutlookまたは任意のデフォルトの電子メールクライアントでそれを開くか、単にOutlookと言う前提条件です。問題は、メールに複数の受信者がある場合です。受信者の名前に置き換えられたすべての「名前」プレースホルダを1つのメールで送信するにはどうすればよいですか?他のプレースホルダは問題ではないかもしれません。 – jamesv

関連する問題