複数の送信とユーザー検証
以下では、最初に複数の受信者に電子メールを送信する方法と、ユーザー認証を実現するためにAuthenticatorsオブジェクトを使用する方法を紹介します。
受信者を指定する場合、2つの方法を指定できます。以前のブログは、メールを送信するときに受信者を一時的に指定し、実際にメッセージオブジェクトで指定できます。
message.addrecipient(message.recipientType.to、new InternetAddress( "[email protected]"));
これは、1人の受信者に送信するためだけですが、複数の受信者と対処する方法は?それに対処する方法も2つあります。
1.電子メールを送信するとき、sendmessage()輸送方法は配列を使用して受信者を指定します。現時点では、受信者アドレスを追加して完成させるだけです。
2。メッセージオブジェクトを使用して受信者を追加する場合、InternetAddressオブジェクトのParse(String String)メソッドを使用できます。この方法は、InternetAddressアレイを返します。これは、複数の受信者に送信することもできます。
Javamailを開発する際には、承認検証を実行する必要があることを知っています。承認検証の目的は、他の人が電子メールを任意に送信できないようにし、スパムの生成を減らすことです。
セッションオブジェクトを取得するときに確認できます。セッションオブジェクトには2つのメソッドがあります。
どちらの方法にも共通のパラメーター認証器があり、これは認証機オブジェクトです。 Authenticatorオブジェクトは、ユーザーが情報を検証し、認証確認を完全にするのに役立ちます。 Authenticatorオブジェクトには、getPassWordAuthentication()メソッドがあります。このメソッドは、PasswordAuthenticationオブジェクトを返します。 PasswordAuthenticationオブジェクトには2つのメソッドがあります。GetPassWord()とgetSusername()は、パスワードAuthenticationオブジェクトにパスワードとユーザー名をカプセル化することを意味します。これらの2つの方法により、ユーザー名とパスワードを取得できます。ユーザー情報の確認を完了できます。
例は次のとおりです。
パブリッククラスjavamail_02 {public static void main(string [] args)throws exception {properties props = new Properties(); props.setProperty( "mail.smtp.auth"、 "true"); props.setProperty( "mail.transport.protocol"、 "smtp"); props.setProperty( "mail.host"、 "smtp.163.com");セッションセッション= session.getInstance(props、new Authenticator(){Protected PasswordAuthentication getPassWordAuthentication(){return new PasswordAuthentication( "******"、 "*********");}}); session.setDebug(true);メッセージmsg = new mimemessage(session); msg.setfrom(new InternetAddress( "Chenssy9[email protected]")); msg.setsubject( "javamailテストプログラム..."); msg.setContent( "<span style = 'color:red'>これは私の2番目のJavamailテストプログラム.... </span>"、 "text/html; charset = gbk"); //msg.setRecipient(RecipientType.to、new Address [] {new InternetAddress( "1111 @@ QQ.com")、new InternetAddress( "[email protected]")}); msg.setRecipients(reciontientType.to、internetAddress.parse( "[email protected]、[email protected]")); Transport.send(msg); }}写真と添付ファイルをメールで送信します
実際の電子メールでは、通常、添付ファイル、写真、曲などのより複雑な電子メール構造が含まれます。現時点では、電子メールの構造を明確に理解する必要があります。複合電子メールを作成する前に、複合電子メールの構造を特定して理解する必要があります。
上記の画像は、複合電子メールの全体的な構造を示しており、複雑な電子メールが複数の部分で構成されていることがわかります。ヘッダーとボディがありますが、体は以前ほど単純ではありませんが、いくつかの部分で構成されています。ヘッドは、テキストを分離するために使用するセパレーターの種類と、テキストの部分の間でどの組み合わせの関係が使用されるかを説明する必要がある兆候として機能する必要があります。上記のメールでは、それぞれが独自の頭と体を持つ3つの部分で構成されており、最初の部分は2つの部分で構成されています。
複合電子メールの組み合わせ関係:
メインテキストパーツの間には多くの組み合わせがあります。組み合わせの関係は次のとおりです。
代替:関係を選択します。上記のプレーンテキストとハイパーテキストは、選択関係です。
関連:関連関係。上記のハイパーテキストテキストに画像が表示される場合、メールを送信するときは、電子メールに写真を含める必要があります。これは、ハイパーテキスト用のいわゆる組み込みリソースです。したがって、2人の間には関係があります。
混合:混合関係。プレーンテキスト、ハイパーテキスト、埋め込みリソース全体が全体を形成し、添付ファイルと並置されており、2つの間に複雑な関係があります。
複合メール組織構造のAPI:
Mimemessageクラスは、電子メール全体を表します。
MimeBodyPartクラスは、電子メールのMimeメッセージを表します。
MimemultiPartクラスは、複数のMIMEメッセージで構成されるMIMEメッセージを組み合わせたものです。
次の例:電子メールには2つの添付ファイルが含まれています。メインパーツにはプレーンテキストとハイパーテキストが含まれ、ハイパーテキストは画像を表示することを意味します。ソースコードは次のとおりです。
パブリッククラスjavamail_03 {public static void main(string [] args)throws exception {properties props = new Properties(); props.setProperty( "mail.smtp.auth"、 "true"); props.setProperty( "mail.transport.protocol"、 "smtp"); props.setProperty( "mail.host"、 "smtp.163.com");セッションセッション= session.getInstance(props、new Authenticator(){Protected PasswordAuthentication getPassWordAuthentication(){return new PasswordAuthentication( "***"、 "******");}});メッセージメッセージ= new mimemessage(session); message.setsubject( "3番目のJavamailテストプログラム"); message.setfrom(new InternetAddress( "/" "+mimeutility.encodetext(" chen ming ")+"/"<chenssy9[email protected]>")); message.setRecipients(ReciontientType.to、new Address [] {new InternetAddress( "[email protected]")}); //テキストmimemultipart multipart = new mimemultipart( "Mixed"); message.setContent(MultiPart); /**メッセージの内容* 1つの電子メール本文と2つの添付ファイル*/ mimebodypart content = new MimeBodyPart(); //メールコンテンツmimebodypart attach1 = new MimeBodyPart(); //添付ファイル1 mimebodypart attach2 = new MimeBodyPart(); //添付ファイル2 //電子メールコンテンツをMultiPart MultiPart.AddBodyPart(content)に追加します。 MultiPart.AddBodyPart(attch1); multipart.addbodyPart(aTTCH2); //添付ファイルの設定1 DataSource ds1 = new filedataSource( "g:// ebook // oracle password.txt"); DataHandler DH1 =新しいDataHandler(DS1); attach1.setDatahandler(DH1); attach1.setFileName( "oracle.txt"); //添付ファイルの設定2 DataSource DS2 = new FileDataSource( "g://ebook//account.txt"); DataHandler DH2 =新しいDataHandler(DS2); Attach2.setDatahandler(DH2); attach2.setFileName(mimeutility.encodetext( "account.txt")); /**コンテンツの設定(テキスト)----は、HTMLテキストと画像の表示を含む複雑なボディです*/ mimemultipart bodymultipart = new mimemultipart( "関連"); content.setContent(bodymultipart); //テキストを作成するmimebodypart htmlbody = new MimeBodyPart(); mimebodypart gifbody = new MimeBodyPart(); bodymultipart.addbodypart(htmlbody); bodymultipart.addbodypart(gifbody); //画像の設定gifds = new filedatasource( "f://picture//picture//4.jpg"); Datahandler gifdh = new Datahandler(GIFDS); gifbody.setdatahandler(gifdh); gifbody.setheader( "content-id"、 "<"+gifds.getName()+">"); //gifbody.setheader("content-location "、" http://www.itcast.cn/logo.gif "); // html body htmlbody.setcontent( "<span style = 'color:red; font-size:16px'>これは私の3番目のJavamailテストです!それは少し複雑です... message.savechanges(); //電子メールTransport.send(メッセージ); }}