머리말
참고 : 다음 코드에서 사용하는 테스트 이메일 주소는 실제 테스트에서 사용할 수있는 126 사서함입니다. 개인 테스트 중에 전송 된 이메일 콘텐츠에주의하십시오. 이메일 서버는 이메일 내용을 검토하고 이메일 서버는 비교적 엄격합니다. 조심하지 않으면 스팸으로 판단되면 오류 코드로 반환됩니다.
예제 코드
import java.util.date; import java.util.properties; import javax.mail.authenticator; import javax.mail.message; import javax.mail.passwordauthentication; import javax.mail.session; import javax.mail.transport; import javax.mail.internetaddress; javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; import javax.mail.internet.mimeutility; public class sendmailutil {private static final String username = "사용자 이름"; // Sender의 사용자 이름 private static final string password = "password"; // Sender의 암호 프라이버시 정적 최종 문자열 hostname = "smtp.126.com"; // SMTP 서버 주소 개인 정적 최종 문자열 FromAddress = username + "@126.com"; // Sender의 이메일 개인 정적 최종 문자열 FromuserName = "CNCD-Code Chinese Blog"; // 발신자 이름은 개인 정적 최종 문자열로 쓸 수 있습니다. // 전자 메일 제목 개인 정적 최종 문자열 이메일 Content = "CNCD 코드 중국어 블로그를 사용하여 이메일을 활성화하십시오. 계정의 링크를 클릭하여 계정 활성화를 완료하십시오. // 이메일 콘텐츠 public static void main (String [] args) {sendemail ("[email protected] "); } catch (예외 e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} / *** 이메일 보내기* @param sendAddress 전송 할 이메일 주소를 보내십시오* @param 컨텐츠 전송* @throws 예외* / public static void sendemail (문자열 sendAddress, 문자열 내용) 예외 {// 연결 속성 생성. 속성 propss = 새로운 속성 (); // props.put ( "mail.smtp.host", hostname); // smtp의 서버 주소를 smtp.126.com props.put ( "mail.smtp.auth", "true"); // SMTP 서버를 인증하도록 설정합니다. props.put ( "mail.transport.protocol", "stmp"); 세션 세션 = session.getInstance (propss, new authenticator () {보호 된 passwordAuthentication getPasswordAuthentication () {return new passwordAuthentication (username, password);}}); 메시지 메시지 = 새로운 mimemessage (세션); InternetAddress의 = 새로운 InternetAddress (FromAddress); // 송신자 주소. // sender name message.setfrom (from); // InternetAddress to = new InternetAddress ( "[email protected]"); // // 수신자 주소 // 이메일 작성 : message.setRecipients (message.recipientType.to, InternetAddress.parse (sendAddress)); // 여러 사람의 이메일 주소로 cc // message.setRecipient (message.recipienttype.to, to); // 이메일 메시지에 cc 만 cc.setSubject (mimeUtility.encodetext (emailTitle)); // 이메일 제목 메시지 .SetSentDate (새 날짜 ()); mimemultipart msgmultipart = new Mimemultipart ( "Mixed"); // 혼합 관계 메시지로 지정합니다 .SetContent (msgmultipart); // 이메일 컨텐츠 MimeBodyPart htmlPart = new MimeBodyPart (); htmlpart.setContent ( "<body> <div style = 'width : 1000px; 높이 : 300px; 마진 : 0px 자동; 마진-바닥; 경계 : 1px solid #92b0dd; 배경색 : #ffffff;'> <h3> 이것은 시스템에 의해 자동으로 전송되지 않는다! 내용+"</div> </body>", "text/html; charset = utf-8"); // 조립 순서가 매우 중요합니다. 먼저 텍스트 필드를 조립 한 다음 Msgmultipart.addbodypart (htmlpart) 파일을 조립해야합니다. // 첨부 파일을 조립 // mimebodyPart 파일 = new MimeBodyPart (); // filedatasource file_datasource = New FiledAtasource (// "d : //report_data2.txt"); // datahandler dh = 새로운 Datahandler (file_datasource); // file.setdatahandler (dh); // // 임베디드 컨텐츠를 구별하는 첨부 파일의 한 가지 기능 중 하나는 파일 이름이 있다는 것입니다. 중국어가 달린 코드를 방지하기 위해 인코딩되어야합니다. // file.setfilename (mimeUtility.encodetext (dh.getName ())); // msgmultipart.addbodyPart (파일); message.sevechanges (); // 이메일 전송 과정 : 95188 Transport Transport = Session.GetTransport ( "SMTP"); // 연결을 만듭니다. Connect.connect (hostName, 25, 사용자 이름, 암호); // 서버에 연결 // 서비스 이름, 포트, 메일 username 보내기 // (b // 메시지 전송 전송 .close (); // system.out.println을 닫습니다 ( "완료된 보내기"); }}이 코드를 처음으로 사용하는 친구의 경우 사용자 이름과 암호를 제외하고 나머지를 변경하지 않는 것이 좋습니다 . 그렇지 않으면 Netease 이메일로 스팸으로 판단 할 수 있습니다. 일반적으로 스팸으로 판단되면 NetEase가 반환 한 오류 코드는 다음과 같습니다.
com.sun.mail.smtp.smtpsendfailedexception : 554 DT : SPM 126 SMTP2, DMMOWACXOTZMK8VXVDKNEA-. 1778S2 1472566222, 참조하십시오 http://mail.163.com/help/help/help_spam_16.htm?ip=117.114.147.13&hostid=smtp2&time=1472566222 at com.sun.mail.mtp.smtptransport.issuesendcommand (smtptransport.java:147.13&hostid=smtp2&time=1472566222) com.sun.mail.smtp.smtptransport.finishdata (smtptransport.java:1634)의 com.sun.mail.smtp.smtptransport.sendmessage (smtptransport.java:889)의 sendmailutil.sendemail sendmailutil.main (sendmailutil.java:29)
이는 오류 반환 코드의 링크로 이동하여 도움말 정보를 볼 수 있음을 의미합니다 . 링크를 입력하고 위의 554 오류 코드가 의미를 나타냅니다. 이 상황은 일반적으로 스팸으로 판단됩니다.
둘째, 테스트 중에 위 코드의 이메일을 자주 실행 (보내지 않음). 너무 자주 발생하면 쉽게 스팸으로 판단됩니다. 자, 위는이 기사의 전체 내용입니다. 모든 사람의 연구와 일에 도움이되기를 바랍니다.