첨부 파일 다운로드 및 업로드, 문자 메시지 보내기 및 이메일 보내기는 모두 프로그램에서 매우 일반적으로 사용되는 기능입니다. 파일의 업로드 및 다운로드를 녹음하고 문자 메시지를 보냈습니다. 최근에 바빴 기 때문에 이메일 보내기 기능을 할 시간이 없었습니다. 이제 마침내 163 사서함이있는 QQ 이메일로 이메일을 성공적으로 보냈습니다. 다음은 관련 코드입니다. 자세한 내용은 코드의 주석을 참조하십시오.
패키지 테스트; java.util.arraylist 가져 오기; import java.util.date; Java.util.list 가져 오기; java.util.properties import; import java.util.regex.matcher; java.util.regex.pattern import; import javax.mail.address; import javax.mail.authenticator; import javax.mail.bodypart; javax.mail.message import; Javax.mail.Passwordauthentication import; javax.mail.session import; import javax.mail.transport; import javax.mail.internet.internetAddress; import javax.mail.internet.mimebodypart; javax.mail.internet.mimemessage import; import javax.mail.internet.mimemultipart; com.sun.mail.util.mailsslsocketfactory import; /// */ * // * @Author tuzongxun123 // * @description 메일 보내기 테스트 클래스 // */public class sendmailtest {public static void main (String [] args) 예외 {// 구성 정보 속성 pro = new Properties (); pro.put ( "mail.smtp.host", "smtp.163.com"); pro.put ( "mail.smtp.auth", "true"); // SSL 암호화 mailsslsocketfactory sf = null; sf = 새로운 mailsslsocketfactory (); // 모든 호스트 신뢰 세트 sf.settrustallhosts (true); pro.put ( "mail.smtp.ssl.enable", "true"); pro.put ( "mail.smtp.ssl.socketfactory", sf); // 이메일의 세션 속성을 기반으로 이메일을 보내기위한 세션을 구성합니다. 여기서 사용자 이름을 접미사 할 수 없으며, 그렇지 않으면 사용자 이름이 아닙니다. // 여기서 비밀번호는 사서함의 로그인 비밀번호가 아니라 클라이언트 MailAuthenticator Authorizer = New MailAuthenticator ( "TuzongXun123", "Client Authorization Code")에 의해 생성 된 다른 특수 권한 부여 코드입니다. 세션 세션 = session.getInstance (pro, sucustizer); // 세션 메시지를 기반으로 이메일 정보 구성 메시지 = 새로운 mimemessage (세션); // 이메일 발신자 주소 주소 작성 = new InternetAddress ( "[email protected]"); // 이메일 메시지의 발신자를 설정합니다. // 수신자의 이메일 주소 목록 <String> TOADDRESSLIST = New ArrayList <> (); TOADDRESSLIST.ADD ( "[email protected]"); StringBuffer buffer = new StringBuffer (); if (! toaddresslist.isempty ()) {String regex = "^([a-z0-9a-z]+[-| //]?)+[a-z0-9a-z]@([a-z0-9a-z]+(-[a-z0-9a-z]+)+)+[a-za-z] {2,} $"; Pattern P = Pattern.compile (Regex); for (int i = 0; i <toaddresslist.size (); i ++) {matcher match = p.matcher (toaddresslist.get (i)); if (match.matches ()) {buffer.append (toaddresslist.get (i)); if (i <toaddresslist.size () -1) {buffer.append ( ","); }}}}} 문자열 toaddress = buffer.toString (); if (! toaddress.isempty ()) {// 메시지 주소의 수신자 주소를 만듭니다. // 이메일 수신자 주소를 설정합니다. // 이메일 주제 // message.setSubject ( "Java Mail Test"); message.setsubject ( "잘못된 이유"); // 이메일 컨테이너 mimemultipart mimemultipart = new Mimemultipart (); // SET HTML BODYPART BODYPART = NEW MIMEBODYPART (); // mail content // String htmlText = "Java 이메일 테스트 111"; 문자열 htmltext = "왜 잘못된 이유"; bodypart.setContent (htmlText, "text/html; charset = utf-8"); mimemultipart.addbodypart (BodyPart); // 첨부 목록 추가 <String> FILEADDRESSLIST = NEW ARRAYLIST <String> (); fileaddresslist .add ( "C : // users // tuzongxun123 // goodtop // new Microsoft Office Word 문서 .docx"); if (fileaddressList! = null) {BodyPart attachPart = null; for (int i = 0; i <fileaddresslist.size (); i ++) {if (! fileaddresslist.get (i) .isempty ()) {attachpart = new MimebodyPart (); // 첨부 데이터 소스 DataSource 소스 = New FileDatasource (FileadDressList.get (i)); // 첨부 데이터 소스를 메일 바디에 추가 첨부 파트. // 첨부 이름을 원본 파일 이름으로 설정 attachPart.setFilename (mimeUtility.encodetext (소스 .getName ()); mimemultipart.addbodypart (attchpart); }}} message.setContent (mimemultipart); message.setsentDate (새 날짜 ()); // 이메일 메시지 저장 .SeveChanges (); // 이메일 전송 전송 (메시지); }}} class mailauthenticator authenticator { / *** username* / private string username; / *** 비밀번호*/ 개인 문자열 비밀번호; /*** 새 인스턴스 MailAuthenticator를 만듭니다. * * @param username * @param password */ public mailauthenticator (String username, string password) {this.username = username; this.password = 비밀번호; } public String getPassword () {return password; } @override Protected PasswordAuthentication getPasswordAuthentication () {return new passwordAuthentication (사용자 이름, 암호); } public String getUserName () {return username; } public void setpassword (문자열 비밀번호) {this.password = password; } public void setusername (String username) {this.username = username; }}참고 : 내 동료가 내 코드를 사용하여 계정 및 고객 인증 코드로 대체했습니다. 그는 오류를 실행하자마자 오류를보고했다. 그런 다음 이메일 주소의 고객 인증 코드를 재설정하고 오류가 사라졌습니다.
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람들이 Java 프로그래밍을 배우는 것이 도움이되기를 바랍니다.