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 import; import javax.mail.address; javax.mail.message import; javax.mail.messagingException import; javax.mail.session import; import javax.mail.transport; import javax.mail.internet.internetAddress; javax.mail.internet.mimemessage import; /** * * qq (mail.qq.com) : Pop3 Server (포트 995) SMTP 서버 (포트 465 또는 587). * */ public class demo1 {/ ** * @param args * @throws messagingException */ public static void main (String [] args)은 메시징 지출 {String sendusername = "[email protected]"; 문자열 sendpassword = "pwd"; 속성 속성 = 새로운 속성 (); properties.setProperty ( "mail.smtp.auth", "true"); // 서버는 속성을 인증해야합니다. session.setdebug (true); // 현재 스레드 메시지의 콘솔에서 서버와 대화 정보를 인쇄하는 데 동의합니다. 메시지 메시지 = new Mimemessage (session); // 보낸 메시지 메시지를 구성합니다 .Settext ( "hello, I 'm Champion.wong!"); // 정보 내용 메시지 .SetFrom ( "[email protected]"); rantials.connect ( "smtp.126.com", 25, sendusername, sendpassword); // 발신자 서버 전송을 연결합니다. }}일반적으로 인증기를 사용하여 Username과 비밀번호를 캡슐화합니다. 그래서:
import javax.mail.authenticator; javax.mail.message import; javax.mail.messagingException import; Javax.mail.Passwordauthentication import; javax.mail.session import; import javax.mail.transport; javax.mail.internet.address import; import javax.mail.internet.internetAddress; javax.mail.internet.mimemessage import; import junit.framework.testcase; /*** Javamail 이메일 보내기* @author Championship wong* message.addrecipient (메시지. 수신자, 주소 주소); 이메일* message.recipientType.cepient* message.recipientType.cc CC를 보낼 때 수신자와 수신자의 역할을 지정하십시오. 그러나 위의 수신자는 * Message.RecipientType.bcc가 비밀리에 보낸 사람을 볼 수 있으며 이메일을 보낼 때 다른 사람에게 사본을 보내는 것입니다. 그러나 수신자는 비밀리에 누가 * */ public class demo2에 비밀리에 준 사람을 볼 수 없습니다. testcase {private static final string sendusername = "[email protected]"; // 전자 메일 STATIC 최종 문자열 sendPassword = "pwd"; "smtp"; // 메일을 보내는 데 사용되는 포트 프라이빗 정적 최종 문자열 sendhostaddress = "smtp.126.com"; // 메일을 보내는 데 사용되는 서버의 주소 공개 void test ()가 주소 지출을 던지기 properties.setProperty ( "mail.smtp.auth", "true"); // 서버는 속성을 인증해야합니다. session.getInstance (Properties, New Authenticator () {보호 된 PasswordAuthentication getPasswordAuthentication () {return new passwordAuthentication (sendUserName, sendPassword);}}); SESTION.SETDEBUG (TRUE); // 배경에서 메일 보내기에 대한 실시간 정보 인쇄 메시지 메시지 = 새 Mimemessage (세션); message.setfrom (new InternetAddress ( "[email protected]")); message.setsubject ( "Demo2javacode 이메일 테스트, 인증기 사용"); // 주제 메시지를 설정합니다. InternetAddress .parse ( "[email protected]")); // cc 메시지 .setContent ( "<span style ="font-size : 20px; color : #ffccff "mce_style ="font-size : 20px; color : #ffccff "> 테스트가 성공했다는 것을 증명한다는 것이 증명되었다. "텍스트/html; charset = gbk"); 송신 .send (메시지); // 이메일 보내기}} 첨부 파일, 사진 및 텍스트를 포함하여 비교적 복잡한 이메일을 보냅니다.
import java.io.filenotfoundException; import java.io.fileoutputStream; import java.io.ioexception; import java.io.outputStream; java.util.properties import; javax.activation.datahandler import; javax.activation.datasource import; import javax.activation.filedatasource; import javax.mail.authenticator; javax.mail.messagingException import; Javax.mail.Passwordauthentication import; javax.mail.session import; import javax.mail.transport; import javax.mail.message.recipientType; import javax.mail.internet.internetAddress; import javax.mail.internet.mimebodypart; javax.mail.internet.mimemessage import; import javax.mail.internet.mimemultipart; javax.mail.internet.mimeutility import; /** * * @Author 관리자 MR XP.WANG * MIMEMULTIPART 이메일의 일반 컨테이너는 Multipart로 이메일의 다양한 부분을 추가하고 삭제하는 방법을 정의합니다. * 그러나 그것은 추상 클래스이며, 하위 클래스 Mimemultipart는 Mimemessage 객체에 사용해야합니다.* MimebodyPart는 Mimemessage에 특별히 사용되는 BodyPart의 서브 클래스입니다. MimeBodyPart 객체는 * MimemultIpart 객체 * mimeUtility.encodetext (String CN)의 모든 부분을 나타내며 이메일 * */ public class demo3_test {public static void main (String [] args) 예외 {properties properties = new Properties (); properties.setProperty ( "mail.smtp.auth", "true"); // 서버는 속성을 인증해야합니다. session.getInstance (Properties, New Authenticator () {String SendUserName = "[email protected]"; String SendPassword = "pwd"; 보호 된 passwordAuthentication getPasswordauthentication () {새로운 암호를 반환 (sendUsername, sendPassword)); 세션 .SetDeBug (true); mimemessage msg = new Mimemessage (세션); // 이메일 Body Msg.setfrom (새로운 Internetaddress ( "/" "+mimeUtility.encodetext ("mr xp.wang ")+"/"<[email protected]>"); msg.setsubject ( "이것은 나의 첫 번째 복잡한 이메일입니다"); // 이메일 주제를 설정하십시오 msg.setrecipients (mimemessage.recipienttype.to, internetaddress.parse (mimeUtility.encodetext ( "wang xiangpan ")+"<[email protected]>, "+mimeutility.encodetext ("sanmao ")+"<[email protected]> "); mimemultipart msgmultipart = new Mimemultipart ( "Mixed"); // 이메일의 조합 관계, 혼합 관계 msg.setContent (msgmultipart); // 이메일 바디 MimeBodyPart att mimebodypart (); // 이메일 텍스트, 혼합물 (그림 + 텍스트) // 첨부 파일과 텍스트를이 이메일 Body Msgmultipart.addbodyPart (attch1)로 설정합니다. msgmultipart.addbodyPart (ATTCH2); msgmultipart.addbodypart (컨텐츠); // 첫 번째 첨부 파일 데이터 소스 DS1 = New FileDatasource ( "F : /ACCP5.0/File/Ssh Configuration.txt"); // 첨부 파일의 데이터 소스를 지정하여 Datahandler DH1 = New DataHandler (DS1); // Attch1.setDatahandler (DH1); // 첨부 파일); attch1.setfilename ( "ssh.txt"); // 두 번째 첨부 파일 데이터 소스 DS2 = New FileDatasource ( "resource/48.jpg"); // 첨부 데이터 소스를 지정합니다 Datahandler DH2 = New Datahandler (DS2); // 첨부 파일 첨부 정보 첨부 파일 첨부 2.setDatahandler (dh2); // 첨부 첨부 첨부 첨부 파일 ( "48.jpg"); // 이메일의 텍스트를 mimemultipart bodymultipart = new mimemultipart ( "relation"); // 종속성 content.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 ( "간장을 만들기 위해 여기에 있습니다. 이것은 내 이미지 사진입니다! <img src ="/"mce_src ="/""http://mimg.126.net/logo/126logo.gif/. "text/html; charset = gbk"); // 텍스트 msg.sevechanges (); // 이메일 저장 // 전자 메일을 파일 outputStream ops = new FileoutputStream ( "c : /users/administrator/desktop/test.eml")으로 저장합니다. msg.writeto (ops); ops.close (); 운송 .send (MSG); }} 이메일을받습니다
예 : Rose는 최신 이메일을 수집합니다.
import java.util.date; import java.util.properties; import javax.mail.folder; import javax.mail.message; import javax.mail.messagingException; import javax.mail.nosuchproviderexception; public class.mail.store; import javax.mail.store; main (string [] args) {문자열 프로토콜 = "pop3"; 부울 isssl = true; 문자열 호스트 = "POP.163.com"; int port = 995; 문자열 username = "[email protected]"; 문자열 암호 = "로즈"; 속성 propss = 새로운 속성 (); props.put ( "mail.pop3.ssl.enable", isssl); props.put ( "mail.pop3.host", 호스트); props.put ( "mail.pop3.port", 포트); 세션 세션 = 세션 .getDefaultInstance (props); 상점 상점 = null; 폴더 폴더 = null; try {store = session.getstore (프로토콜); store.connect (사용자 이름, 비밀번호); folder = store.getfolder ( "Inbox"); folder.open (folder.read_only); int size = folder.getMessAgeCount (); 메시지 메시지 = folder.getMessage (size); string from = message.getfrom () [0] .toString (); 문자열 주제 = message.getSubject (); 날짜 = message.getSentDate (); System.out.println ( "From :" + From); System.out.println ( "제목 :" + 주제); System.out.println ( "날짜 :" + 날짜); } catch (nosuchproviderexception e) {e.printstacktrace (); } catch (MessagingException e) {e.printstacktrace (); } 마침내 {try {if (폴더! = null) {folder.close (false); } if (store! = null) {store.close (); }} catch (MessagingException e) {e.printstacktrace (); }} system.out.println ( "수신!"); }}