Javamailを使用して、必要なJARパッケージである電子メールを送信します(javamailのソースファイル、公式ダウンロードページ:http://www.oracle.com/technetwork/java/javamail/index-138643.html):
Mailapi.jar。電子メールの送信と受信に使用されるインターフェイスAPIを定義します。
smtp.jar。電子メールの送信に使用されるクラスが含まれています。
pop3.jar。メールを受信するために使用されるクラスが含まれています。
通常、電子メールを送信するために使用するプロトコルはSMTPプロトコルであり、電子メールを受け入れるために使用するプロトコルはPOP3プロトコルです。または、プロジェクトにmail.jarを直接追加します。これには、Javaの送信および受信用のすべてのインターフェイスとクラスが含まれています。
一般的に使用されるクラス:
メールを送信します
以下に、Javaで電子メールを送信する最も簡単なテスト例を最初にリストします。
java.util.propertiesをインポートします。 javax.mail.addressをインポートします。 javax.mail.messageをインポートします。 javax.mail.messagingexceptionをインポートします。 javax.mail.sessionをインポートします。 javax.mail.transportをインポートします。 javax.mail.internet.internetaddressをインポートします。 javax.mail.internet.mimemessageをインポートします。 /** * * QQ(Mail.QQ.com):POP3サーバー(ポート995)SMTPサーバー(ポート465または587)。 * */ public class demo1 {/ ** * @param args * @throws messagingection */ public static void main(string [] args)throws messagingexception {string sendusername = "[email protected]";文字列sendpassword = "pwd";プロパティプロパティ= new Properties(); properties.setProperty( "mail.smtp.auth"、 "true"); //サーバーはプロパティを認証する必要があります。setproperty( "mail.transport.protocol"、 "smtp"); session.setDebug(true); // Transport.Connect( "smtp.126.com"、25、sendusername、sendpassword); //送信者サーバーTransport.sendmessage(メッセージ、新しいアドレス[] {new InternetAddress( "[email protected]")}); }}一般的に、Authenticatorを使用して、ユーザー名とパスワードをカプセル化します。これは不透明です!それで:
javax.mail.authenticatorをインポートします。 javax.mail.messageをインポートします。 javax.mail.messagingexceptionをインポートします。 javax.mail.passwordauthenticationをインポートします。 javax.mail.sessionをインポートします。 javax.mail.transportをインポートします。 javax.mail.internet.addressをインポートします。 javax.mail.internet.internetaddressをインポートします。 javax.mail.internet.mimemessageをインポートします。 junit.framework.testcaseをインポートします。 /*** javamail送信メール* @authorチャンピオンシップWong* message.addrecipient(message.Recipient Recipient、住所アドレス);電子メールを送信するときに受信者と受信者の役割を指定します* message.recipienttype.to seciotient* message.recipientType.cc CC、つまり、返信せずに電子メールを送信するときに1つを他の人にコピーします。ただし、上記の受信者は、 * message.recipienttype.bccにコピーした人を密かに送信することができます。また、メールを送信するときに他の人にコピーを送信することもできます。ただし、上記とは異なり、受信者は * * */ public class demo2にひそかに与えた人を見ることができません。{private static final string sendusername = "[email protected]"; //電子メールを送信するために接続する必要があるサーバーのユーザー名をexting sendusername = "[email protected]"; = "smtp"; //メールの送信に使用されるポートプライベートスタチック最終文字列sendhostaddress = "smtp.126.com"; //メールパブリックvoidテスト()を送信するために使用されるサーバーのアドレスは、addressexception、messagingexception {properties properties = new properties(); properties.setProperty( "mail.smtp.auth"、 "true"); //サーバーはプロパティを認証する必要があります。setproperty( "mail.transport.protocol"、sendprotocol); // mailプロパティを送信するために使用されるポートを宣言します。 session.getInstance(properties、new Authenticator(){Protected PasswordAuthentication getPassWordAuthentication(){return new PasswordAuthentication(sendusername、sendpassword);}}); session.setDebug(true); //バックグラウンドメッセージでメールの送信に関するリアルタイム情報を印刷メッセージ= new Mimemessage(session); message.setfrom(new InternetAddress( "[email protected]")); message.setsubject( "demo2javacode emautioncator"); // topic.setRecipers(message.recipientType.to、internetAddress .Parse( "[email protected]、[email protected]"); .Parse( "[email protected]")); // cc message .setContent( "<span style =" font-size: "font-size; "text/html; charset = gbk"); Transport.send(メッセージ); //電子メールを送信}}添付ファイル、写真、テキストなど、比較的複雑なメールを送信します。
java.io.filenotfoundexceptionをインポートします。 java.io.fileoutputStreamをインポートします。 java.io.ioexceptionをインポートします。 java.io.outputStreamをインポートします。 java.util.propertiesをインポートします。 javax.activation.datahandlerをインポートします。 javax.activation.datasourceをインポートします。 javax.activation.filedatasourceをインポートします。 javax.mail.authenticatorをインポートします。 javax.mail.messagingexceptionをインポートします。 javax.mail.passwordauthenticationをインポートします。 javax.mail.sessionをインポートします。 javax.mail.transportをインポートします。 javax.mail.message.recipientTypeをインポートします。 javax.mail.internet.internetaddressをインポートします。 javax.mail.internet.mimebodypartをインポートします。 javax.mail.internet.mimemessageをインポートします。 javax.mail.internet.mimemultipartをインポートします。 javax.mail.internet.mimeutilityをインポートします。 /** * * @Author管理者XP.WANG * MIMEMULTIPART電子メールの一般的なコンテナはMultiPARTです。これは、電子メールのさまざまな部分を追加および削除するメソッドを定義しています。 *ただし、これは抽象的なクラスであり、そのサブクラスMimemultipartをMimemessageオブジェクトに使用する必要があります* MimeBodyPartは、Mimemessageに特別に使用されるボディパートのサブクラスです。 MimeBodyPartオブジェクトは、mimemultipartオブジェクトのすべての部分を表します * mimeutility.encodetext(string cn)は、電子メールのヘッダー情報の中国語の文字化けコードの問題を解決するために使用されます */ public class demo3_test {public static void main(string [] arg)Throws Excepties {Properties Properties = new Properties( properties.setProperty( "mail.smtp.auth"、 "true"); //サーバーはプロパティを認証する必要があります。setproperty( "mail.transport.protocol"、 "smtp"); session.getInstance(Properties、new Authenticator(){String Sendusername = "[email protected]"; string sendpassword = "pwd"; protected password authentication getPassWordAuthentication(){return new PasswordAuthentication(sendusName、sendpassword);}); session.setDebug(true); mimemessage msg = new mimemessage(session); // email body msg.setfrom( "/" "+mimeutility.encodetext(" mr xp.wang ")+"/"/" <[email protected]> ")); msg.setsubject( "これは私の最初の複雑な電子メール") xiangpan ")+" <[email protected]>、 "+mimeutility.encodetext(" sanmao ")+" <[email protected]> ")); mimemultipart msgmultipart = new mimemultipart( "Mixed"); //電子メールの組み合わせ関係を示し、MSG.setContent(msgmultipart) mimeBodyPart(); //メールのテキスト、混合(画像 +テキスト)//添付ファイルとテキストをこのメールボディに設定するmsgmultipart.addbodypart(attch1); MSGMULTIPART.ADDBODYPART(ATTCH2); msgmultipart.addbodypart(content); //最初の添付ファイルDataSource DS1 = new FileDataSource( "f:/acccp5.0/file/ssh configuration.txt"); //添付ファイルデータソースDH1 = new Datahandler(DS1); attch1.setfileName( "ssh.txt"); // 2番目の添付ファイルDataSource DS2 = new FileDataSource( "Resource/48.jpg") //電子メールのテキストを設定するmimemultipart bodymultipart = new mimemultipart( "related"); //依存関係コンテンツ。setcontent(bodymultipart); // body mimebodypart htmlpart = new mimebodypart(); mimebodypart gifpart = new MimeBodyPart(); bodymultipart.addbodypart(htmlpart); bodymultipart.addbodypart(gifpart); dataSource gifds = new filedataSource( "resource/48.jpg"); //テキストDatahandler gifdh = new Datahandler(gifds); gifpart.setheader( "content-location"、 "http://mimg.126.net/logo/126logo.gif"); gifpart.setdatahandler(gifdh); //テキストの写真を設定しますhtmlpart.setcontent( "私は醤油を作るためにここにいるだけです、これは私の画像写真です! "text/html; charset = gbk"); // text msg.savechanges(); //メールを保存// file outputstream ops = new fileoutputStream( "c:/users/administrator/desktop/test.eml"); msg.writeto(ops); ops.close(); Transport.send(msg); }}メールを受信します
例:Roseは最新の電子メールを収集します。
java.util.date;インポートjava.util.properties;インポートjavax.mail.folder; import javax.mail.message; import javax.mail.messagingexception; import javax.mail.nosuchproviderexception; main(string [] args){string protocol = "pop3"; boolean isssl = true; string host = "pop.163.com"; int port = 995;文字列username = "[email protected]";文字列パスワード= "rose"; Properties Props = new Properties(); props.put( "mail.pop3.ssl.enable"、ysssl); props.put( "mail.pop3.host"、host); props.put( "mail.pop3.port"、port);セッションセッション= session.getDefaultInstance(props);ストアストア= null;フォルダーフォルダー= null; try {store = session.getStore(protocol); store.connect(username、password); folder = store.getFolder( "Inbox"); folder.open(folder.read_only); int size = folder.getMessageCount();メッセージメッセージ= folder.getMessage(size); string from = message.getFrom()[0] .toString(); string subject = message.getSubject();日付date = message.getSentDate(); system.out.println( "from:" + from); System.out.println( "subject:" + subject); System.out.println( "date:" + date); } catch(nosuchproviderexception e){e.printstacktrace(); } catch(messagingexception e){e.printstacktrace(); }最後に{try {if(folder!= null){folder.close(false); } if(store!= null){store.close(); }} catch(messagingexception e){e.printstacktrace(); }} system.out.println( "receent!"); }}