サーブレットメール
)コンピュータJAFに)非常にシンプルですが、まずあなたがたJavaMail APIとJava起動フレームワークをインストールする必要がありサーブレットを使用して電子メールを送信します。
- あなたは、Javaの最新バージョンをダウンロードすることができますJavaMailの 、 ダウンロードのリンクがあるページの右側を開き、ダウンロードしてそれをクリックします。
- あなたは、Javaの最新バージョンをダウンロードすることができます(バージョン1.1.1)JAFを 。
また、ダウンロードリンクを提供するためにサイトを使用することができます。
ダウンロードして、新しく作成した最上位ディレクトリにファイルを解凍し、あなたはいくつかのjarファイルを二つのアプリケーションを見つけることができます。 あなたのCLASSPATHにのmail.jarおよびactivation.jarのファイルを追加する必要があります。
簡単な電子メールを送信
次の例では、コンピュータからの単純な電子メールを送信します。 これは、ローカルホストは 、インターネットや電子メールサポートに接続されている前提としています。 JavaのメールAPIパッケージとJAFパッケージCLASSPATH内のすべてのJARファイルが使用可能であることを保証しながら。
//ファイル名SendEmail.java 輸入java.io. *; 輸入java.utilの*; インポートのjavax.servlet *; 輸入のjavax.servlet.http *; 輸入のjavax.mail *; 輸入javax.mail.internet *; 輸入持つjavax.activation *; パブリッククラスのsendEmailはHttpServletを拡張{ ます。public void doGetメソッド(HttpServletRequestのリクエスト、 HttpServletResponseの応答) ServletExceptionが、IOExceptionがスローされます { //受信者の電子メールID = "[email protected]"に文字列。 //送信者の電子メールID = "[email protected]"から文字列。 //例えば、あなたが、ローカルホストから= "localhost"が電子メール文字列ホストを送信しましょう。 //)(システムプロパティのプロパティプロパティ=のSystem.getPropertiesを取得します。 //メールサーバーproperties.setProperty( "mail.smtp.host"、ホスト)を設定。 //デフォルトのSessionオブジェクトのセッションsession = Session.getDefaultInstance(プロパティ)を取得します。 応答のコンテンツタイプresponse.setContentTypeを設定//( "text / htmlの;のcharset = UTF-8"); PrintWriterのうち= response.getWriter(); {しよう //のMimeMessageはのMimeMessageメッセージ=新しいのMimeMessage(セッション)オブジェクトのデフォルトを作成します。 ヘッダーのヘッダーフィールド://からを設定します。 message.setFrom(新規たInternetAddress(から)); ヘッダのヘッダフィールド://に設定します。 message.addRecipient(Message.RecipientType.TO、 新たInternetAddress(へ)); //件名を設定します:ヘッダフィールド message.setSubject(「これは件名です! "); //ここで実際のメッセージをmessage.setText(「これは実際のメッセージである ")を設定します。 //メッセージTransport.send(メッセージ)を送信します。 文字列タイトル= "メール"; 文字列resが= "に成功...メッセージを送りました」。 文字列DOCTYPE = "\ nは<!DOCTYPE htmlの!>"; out.printlnを(DOCTYPE + "<HTML> \ n"は+ "<ヘッド> <タイトル>" +タイトル+ "</タイトル> </ head>の\ n"は+ 「<BODY BGCOLOR = \ "#のf0f0f0 \"> \ n "は+ 「<H1 ALIGN = \ "センター\"> "+タイトル+" </ H1> \ n "は+ 「<P ALIGN = \ "センター\"> "+ RES +" </ P> \ n "は+ "</ BODY> </ HTML>"); }キャッチ(てMessagingException MEX){ mex.printStackTrace()。 } } }
それでは、上記のサーブレットをコンパイルし、web.xmlファイルに次のエントリを作成してみましょう:
.... <サーブレット> <サーブレット名>のsendEmail </サーブレット名> <サーブレットクラス>のsendEmail </サーブレットクラス> </サーブレット> <サーブレットマッピング> <サーブレット名>のsendEmail </サーブレット名> <url-pattern> /のsendEmail </のurl-pattern> </サーブレットマッピング> ....
今すぐURLはhttpを訪問することによって:// localhostを:8080 /のsendEmailは、このサーブレットを呼び出します。 これは、指定したメールID [email protected]に電子メールを送信し、次の応答のように表示されます。
電子メールを送信しますメッセージを正常に送信されました... |
あなたが複数の受信者に電子メールを送信したい場合は、複数の電子メールIDを指定するには、以下の方法を使用します。
ボイドaddRecipients(Message.RecipientTypeタイプ、 アドレスを)]アドレス MessagingExceptionがスローされます
以下はパラメータの説明です:
- タイプ:これはTO、CC、またはBCCとして設定されます。ここでは、CC、BCC BCCの代表に代わってCC。 たとえばMessage.RecipientType.TOのため。
- アドレス:これは、電子メールIDの配列です。電子メールIDを指定するときは、たInternetAddress()メソッドを使用する必要があります。
HTML形式の電子メールを送ります
次の例では、コンピュータ上のHTML形式の電子メールを送信します。 これは、ローカルホストは 、インターネットや電子メールサポートに接続されている前提としています。 JavaのメールAPIパッケージとJAFパッケージCLASSPATH内のすべてのJARファイルが使用可能であることを保証しながら。
この例では、前の例と非常によく似ていますが、ここでは二番目のパラメータを設定するためのsetContent()メソッドを使用する「text / htmlの "コンテンツで、このパラメータはメッセージに含まれるHTMLコンテンツを指定するために使用されます。
このインスタンスを使用して、コンテンツがHTMLコンテンツのサイズに限定されるものではないが送信することができます。
//ファイル名SendEmail.java 輸入java.io. *; 輸入java.utilの*; インポートのjavax.servlet *; 輸入のjavax.servlet.http *; 輸入のjavax.mail *; 輸入javax.mail.internet *; 輸入持つjavax.activation *; パブリッククラスのsendEmailはHttpServletを拡張{ ます。public void doGetメソッド(HttpServletRequestのリクエスト、 HttpServletResponseの応答) ServletExceptionが、IOExceptionがスローされます { //受信者の電子メールID = "[email protected]"に文字列。 //送信者の電子メールID = "[email protected]"から文字列。 //例えば、あなたが、ローカルホストから= "localhost"が電子メール文字列ホストを送信しましょう。 //)(システムプロパティのプロパティプロパティ=のSystem.getPropertiesを取得します。 //メールサーバーproperties.setProperty( "mail.smtp.host"、ホスト)を設定。 //デフォルトのSessionオブジェクトのセッションsession = Session.getDefaultInstance(プロパティ)を取得します。 応答のコンテンツタイプresponse.setContentTypeを設定//( "text / htmlの;のcharset = UTF-8"); PrintWriterのうち= response.getWriter(); {しよう //のMimeMessageはのMimeMessageメッセージ=新しいのMimeMessage(セッション)オブジェクトのデフォルトを作成します。 ヘッダーのヘッダーフィールド://からを設定します。 message.setFrom(新規たInternetAddress(から)); ヘッダのヘッダフィールド://に設定します。 message.addRecipient(Message.RecipientType.TO、 新たInternetAddress(へ)); //件名を設定します:ヘッダフィールド message.setSubject(「これは件名です! "); //(実際のHTMLメッセージの内容サイズ限られたmessage.setContentを設定する」<H1>これは、実際のメッセージ</ H1>です」、 "テキスト/ htmlの"); //メッセージTransport.send(メッセージ)を送信します。 文字列タイトル= "メール"; 文字列resが= "に成功...メッセージを送りました」。 文字列DOCTYPE = "\ nは<!DOCTYPE htmlの!>"; out.printlnを(DOCTYPE + "<HTML> \ n"は+ "<ヘッド> <タイトル>" +タイトル+ "</タイトル> </ head>の\ n"は+ 「<BODY BGCOLOR = \ "#のf0f0f0 \"> \ n "は+ 「<H1 ALIGN = \ "センター\"> "+タイトル+" </ H1> \ n "は+ 「<P ALIGN = \ "センター\"> "+ RES +" </ P> \ n "は+ "</ BODY> </ HTML>"); }キャッチ(てMessagingException MEX){ mex.printStackTrace()。 } } }
指定された電子メールIDにHTMLメッセージを送信し、コンパイルし、上記のサーブレットを実行します。
電子メールで添付ファイルを送信
以下の例は次のようになりますお使いのコンピュータ上のファイルが添付された電子メールを送信します。 これは、ローカルホストは 、インターネットや電子メールサポートに接続されている前提としています。 JavaのメールAPIパッケージとJAFパッケージCLASSPATH内のすべてのJARファイルが使用可能であることを保証しながら。
//ファイル名SendEmail.java 輸入java.io. *; 輸入java.utilの*; インポートのjavax.servlet *; 輸入のjavax.servlet.http *; 輸入のjavax.mail *; 輸入javax.mail.internet *; 輸入持つjavax.activation *; パブリッククラスのsendEmailはHttpServletを拡張{ ます。public void doGetメソッド(HttpServletRequestのリクエスト、 HttpServletResponseの応答) ServletExceptionが、IOExceptionがスローされます { //受信者の電子メールID = "[email protected]"に文字列。 //送信者の電子メールID = "[email protected]"から文字列。 //例えば、あなたが、ローカルホストから= "localhost"が電子メール文字列ホストを送信しましょう。 //)(システムプロパティのプロパティプロパティ=のSystem.getPropertiesを取得します。 //メールサーバーproperties.setProperty( "mail.smtp.host"、ホスト)を設定。 //デフォルトのSessionオブジェクトのセッションsession = Session.getDefaultInstance(プロパティ)を取得します。 応答のコンテンツタイプresponse.setContentTypeを設定//( "text / htmlの;のcharset = UTF-8"); PrintWriterのうち= response.getWriter(); {しよう //のMimeMessageはのMimeMessageメッセージ=新しいのMimeMessage(セッション)オブジェクトのデフォルトを作成します。 ヘッダーのヘッダーフィールド://からを設定します。 message.setFrom(新規たInternetAddress(から)); ヘッダのヘッダフィールド://に設定します。 message.addRecipient(Message.RecipientType.TO、 新たInternetAddress(へ)); //件名を設定します:ヘッダフィールド message.setSubject(「これは件名です! "); //メッセージ部分のBodyPart messageBodyPart =新しいのMimeBodyPart()を作成します。 //メッセージmessageBodyPart.setText(「これはメッセージ本体である」)を記入。 //)マルチパート=新しいのMimeMultipart(マルチパートのマルチパートメッセージを作成します。 //設定したテキストメッセージ部分multipart.addBodyPart(messageBodyPart)。 // 2番目の部分は、アクセサリmessageBodyPart =新しいのMimeBodyPart(です); 文字列filename = "file.txtは"; データソースソース=新しいFileDataSource(ファイル名); messageBodyPart.setDataHandler(新しいデータハンドラ(ソース)); messageBodyPart.setFileName(ファイル名); multipart.addBodyPart(messageBodyPart)。 //完全なメッセージ部分のmessage.setContentを送る(マルチパート); //メッセージTransport.send(メッセージ)を送信します。 文字列タイトル= "メール"; 文字列resが= "正常に電子メールを送信...」。 文字列DOCTYPE = "\ nは<!DOCTYPE htmlの!>"; out.printlnを(DOCTYPE + "<HTML> \ n"は+ "<ヘッド> <タイトル>" +タイトル+ "</タイトル> </ head>の\ n"は+ 「<BODY BGCOLOR = \ "#のf0f0f0 \"> \ n "は+ 「<H1 ALIGN = \ "センター\"> "+タイトル+" </ H1> \ n "は+ 「<P ALIGN = \ "センター\"> "+ RES +" </ P> \ n "は+ "</ BODY> </ HTML>"); }キャッチ(てMessagingException MEX){ mex.printStackTrace()。 } } }
指定された電子メールIDに添付ファイルでメッセージを送信し、上記のサーブレットをコンパイルして実行します。
ユーザ認証部
あなたは電子メールサーバーのユーザーIDとパスワードの認証を提供する必要がある場合は、次のプロパティを設定できます。
props.setProperty(「mail.user "、" myuserの "); props.setProperty(「mail.password "、" mypwd」)。
電子メール配信機構の残りの部分は、説明上と一致しています。