다중 보내기 및 사용자 확인
다음은 먼저 여러 수신자에게 이메일을 보내는 방법과 인증 자 개체를 사용하여 사용자 인증을 달성하는 방법을 소개합니다.
수신자를 지정할 때는이를 지정하는 두 가지 방법을 가질 수 있습니다. 이전 블로그는 이메일을 보낼 때 수신자를 일시적으로 지정했으며 실제로 메시지 객체에 지정할 수 있습니다.
message.addrecipient (message.recipienttype.to, new InternetAddress ( "[email protected]");
이것은 단지 그것을 한 명의 수신자에게 보내기위한 것이지만 여러 수신자를 다루는 방법은 무엇입니까? 그것을 다루는 방법에는 두 가지가 있습니다.
1. 이메일을 보낼 때 SendMessage () Method of Transport는 배열을 사용하여 수신자를 지정합니다. 이 시점에서는 더 많은 수신자 주소 만 추가하여 완료하면됩니다.
2. 메시지 객체를 사용하여 수신자를 추가 할 때 InternetAddress 객체의 구문 분석 (문자열) 메소드를 사용할 수 있습니다. 이 메소드는 InternetAddress 배열을 반환하며 여러 수신자에게도 보낼 수도 있습니다.
우리는 Javamail을 개발할 때 승인 검증을 수행해야한다는 것을 알고 있습니다. 승인 확인의 목적은 다른 사람들이 임의로 이메일을 보내지 않고 스팸 생성을 줄이는 것입니다.
세션 객체를 얻을 때 확인할 수 있습니다. 세션 객체에는 두 가지 방법이 있습니다.
두 방법 모두 공통 매개 변수 인증기가 있으며, 이는 인증 자 객체입니다. Authenticator 객체는 사용자가 정보를 확인하고 승인 확인을 완료하는 데 도움이됩니다. Authenticator 객체에는 getpasswordauthentication () 메소드가 있습니다. 이 메소드는 PasswordAuthentication 객체를 반환합니다. PasswordAuthentication 객체에는 getpassword () 및 getUsername ()에 두 가지 방법이 있습니다. 즉, PasswordAuthentication 객체에서 비밀번호와 사용자 이름을 캡슐화합니다. 이 두 가지 방법을 통해 사용자 이름과 비밀번호를 얻을 수 있습니다. 사용자 정보 확인을 완료 할 수 있습니다.
예는 다음과 같습니다.
공개 클래스 javamail_02 {public static void main (String [] args)은 예외 {properties propss = new Properties (); props.setProperty ( "mail.smtp.auth", "true"); props.setProperty ( "mail.transport.protocol", "smtp"); props.setproperty ( "mail.host", "smtp.163.com"); 세션 세션 = session.getInstance (propss, new authenticator () {보호 된 비밀번호 getpasswordauthentication () {새로운 비밀번호를 반환합니다 ( "******", "*********");}}); 세션 .SetDeBug (true); 메시지 msg = 새로운 mimemessage (세션); msg.setfrom (new InternetAddress ( "[email protected]")); msg.setsubject ( "Javamail Test Program ..."); msg.setContent ( "<span style = 'color : red'> 이것은 나의 두 번째 Javamail 테스트 프로그램입니다 .... </span>", "text/html; charset = gbk"); //msg.setRecipients(recipientType.to, New Address [] {New InternetAddress ( "1111 @@ qq.com"), New InternetAddress ( "[email protected]"}); msg.setRecipients (RecepientType.to, InternetAddress.parse ( "[email protected], [email protected]"); 운송 .send (MSG); }} 사진 및 첨부 파일이있는 이메일
실제 이메일에는 일반적으로 첨부 파일, 사진, 노래 등과 같은보다 복잡한 이메일 구조가 포함됩니다. 현재, 우리는 이메일의 구조를 명확하게 이해해야합니다. 복합 이메일을 개발하기 전에 복합 이메일의 구조에 대한 특정 이해가 필요합니다.
위의 이미지는 복합 이메일의 전체 구조를 보여 주며 복잡한 이메일이 여러 부분으로 구성되어 있음을 알 수 있습니다. 헤더와 몸체가 있지만 몸은 이전만큼 간단하지는 않지만 여러 부분으로 구성됩니다. 헤드는 텍스트를 분리하기 위해 어떤 종류의 분리기와 텍스트 부분 사이에 사용되는 조합 관계를 설명 해야하는 징후 역할을해야합니다. 위의 이메일의 경우 각각 자체 머리와 신체를 가진 세 부분으로 구성되며 첫 번째 부분은 두 부분으로 구성됩니다.
복합 이메일의 조합 관계 :
본문 부분에는 많은 조합이 있습니다. 조합 관계는 다음과 같습니다.
대안 : 관계를 선택하십시오. 위의 일반 텍스트와 하이퍼 텍스트는 선택 관계입니다.
관련 : 제휴 관계. 위의 하이퍼 텍스트 텍스트에 사진이 표시되면 이메일을 보낼 때 HyperText 용 소위 임베디드 리소스 인 이메일에 사진을 포함시켜야합니다. 따라서 두 사람 사이에는 관계가 있습니다.
혼합 : 혼합 관계. 일반 텍스트, 하이퍼 텍스트 및 임베디드 리소스는 전체를 형성하며 첨부 파일로 병치되어 있으며 둘 사이에 혼합 된 관계가 있습니다.
복합 우편 조직 구조를위한 API :
Mimemessage 클래스는 전체 이메일을 나타냅니다.
MimebodyPart 클래스는 이메일의 MIME 메시지를 나타냅니다.
Mimemultipart 클래스는 여러 마임 메시지로 구성된 결합 된 MIME 메시지를 나타냅니다.
다음 예제 : 이메일에는 두 개의 첨부 파일이 포함되어 있으며, 기본 부분에는 일반 텍스트와 하이퍼 텍스트가 포함되며, 하이퍼 텍스트는 그림을 표시하는 것을 의미합니다. 소스 코드는 다음과 같습니다.
공개 클래스 javamail_03 {public static void main (String [] args)은 예외 {properties propss = new Properties (); props.setProperty ( "mail.smtp.auth", "true"); props.setProperty ( "mail.transport.protocol", "smtp"); props.setproperty ( "mail.host", "smtp.163.com"); 세션 세션 = session.getInstance (propss, new authenticator () {보호 된 비밀번호 getPasswordAuthentication () {새로운 암호를 반환합니다 ( "***", "******");}}); 메시지 메시지 = 새로운 mimemessage (세션); message.setsubject ( "세 번째 Javamail 테스트 프로그램"); message.setfrom (new InternetAddress ( "/" "+mimeutility.encodetext ("Chen Ming ")+"/"<[email protected]>")); Message.SetRecipients (RecepitientType.to, 새 주소 [] {New InternetAdDress ( "[email protected]")); // 메일 텍스트 mimemultipart multipart = new Mimemultipart ( "Mixed"); message.setContent (multipart); /** 메시지의 내용*에는 하나의 이메일 본문과 두 개의 첨부 파일이 포함됩니다*/ mimebodypart content = new MimeBodyPart (); // Mail Content 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); att // 첨부 파일 설정 2 DataSource DS2 = New FileDatasource ( "g : //ebook//account.txt"); Datahandler dh2 = 새로운 Datahandler (DS2); att att /** 컨텐츠 설정 (텍스트) ----는 HTML 텍스트를 포함하여 복잡한 본문*입니다. content.setContent (BodyMultipart); // 텍스트 구성 MimeBodyPart htmlbody = new MimeBodyPart (); MimebodyPart gifbody = New MimeBodyPart (); bodymultipart.addbodypart (htmlbody); BodyMultipart.addbodyPart (gifbody); // 그림 DataSource gifds = New FileDatasource 설정 ( "f : //picture//picture//4.jpg"); Datahandler gifdh = 새로운 Datahandler (gifds); gifbody.setdatahandler (gifdh); gifbodey.setHeader ( "content-id", "<"+gifds.getName ()+">"); //gifbodey.setheader("content-location ","http://www.itcast.cn/logo.gif "); // html body htmlbody.setContent를 설정합니다 ( "<span style = 'color : 빨간색; font-size : 16px'> 이것은 세 번째 Javamail 테스트입니다! 그것은 약간 복잡한 첨부 파일과 그림을 포함합니다 ... </span> <br>" + "표시된 그림 <img src = 'cid : 4.jpg'/>"; message.sevechanges (); // 이메일 송신기 생성 .send (메시지); }}