Spring Mail은 Javamail의 메일 서비스를 캡슐화하여 우편 서비스를보다 쉽게 사용할 수 있습니다. QQ Mailbox 서버를 예로 들어 Spring Mail 서비스를 사용하여 이메일을 보냅니다.
QQ 사서함, "설정" - "계정"을 구성하고 SMTP 서비스를 열고 인증 코드를 생성하십시오.
인증 코드를 생성하려면 휴대폰의 확인이 필요합니다. 다음으로 QQ 이메일 계정 및 권한 부여 코드를 사용하여 이메일을 보낼 수 있으며 QQ 비밀번호가 필요하지 않습니다.
Spring Mail Service는 Spring-Context-Support로 구성된 다음 QQ 사서함이 제공하는 전송 서버와 함께 이메일을 보낼 수 있습니다.
<pectionency> <groupid> javax.mail </groupid> <artifactid> mail </artifactid> <4.7 </version> </fectionement> <pectionement> <groupid> org.springframework </groupid> <artifactid> spring-context-support </artifactid> 3.2.17. version </version </version> </version>
일반 텍스트 메일
첫 번째 테스트는 일반 텍스트 메일입니다
패키지 com.xmyself.mail; import org.springframework.mail.simplemailmessage; import org.springframework.mail.javamail.javamailsenderimpl; 공개 클래스 메인 {public static void main (String [] args) {javamailsenderimpl mailsender = new JavamailsenderImpl (); mailsender.sethost ( "smtp.qq.com"); MailSender.Setport (587); mailsender.setusername ( "[email protected]"); MailSender.SetPassword ( "DSRUKLOZELXCBDBA"); // 권한 부여 코드 SimpleEmailMessage Mail = New SimplemailMessage (); mail.setto ( "[email protected]"); mail.setfrom ( "[email protected]"); mail.setsubject ( "테스트 메일"); mail.settext ( "테스트 메일 콘텐츠"); MailSender.Send (Mail); System.out.println ( "성공"); }}실행하고 이메일을 보내십시오. 참고 : 인증 코드는 비밀번호가 아니며 포트는 25가 아니라 587입니다.
다음으로 MailSender를 변경하지 않고 메일 유형을 수정 한 후 풍부한 메일 메시지를 보내십시오.
간단한 HTML 메일
전자 메일 콘텐츠를 HTML 형식으로 표시하도록하고 다음과 같이 수정하십시오.
mimemessage mail = mailsender.createmimemessage (); mimemesagehelper helper = new MimemessageHelper (Mail, True); // true는 멀티 파트 모드를 켜고 이미지 또는 첨부 파일을 추가하는 데 사용됩니다. helper.setto ( "[email protected]"); helper.setfrom ( "[email protected]"); helper.setsubject ( "테스트 메일"); helper.settext ( "<html> <</head> <h1> hello !! , 진실);
여전히 MailSender를 사용 하여이 메일을 보내십시오
MailSender.Send (Mail);
사진과 함께 HTML 메일
이메일의 HTML 컨텐츠에 이미지 표시 삽입, 텍스트 콘텐츠 수정
helper.settext ( "<html> <head> </head> </head> <body>" + "<h1> hello !! 스프링 html 메일 </h1>" + "<img src =/"cid : image/"/>" + "</body> </html>", true); FileSystemresource image = new Filesystemresource file ( "d : /test.jpg")); helper.addinline ( "image", image);
첨부 파일이있는 HTML 메일
이메일에 첨부 파일을 추가하면 텍스트 콘텐츠가 변경되지 않은 상태로 유지되며 다음과 같이 수정하십시오.
helper.settext ( "<html> <head> </head> <head> <body>" + "<h1> hello !! Hello !! 스프링 html 메일 </h1>" + " +"</body> </html> ", true); filesystemresource image = new FilesystemResource (새 파일 ("d : /test.jpg "); 이미지); 프리 마커 템플릿 이메일
HTML 컨텐츠는 일반적으로 매우 풍부하며 settext () 메소드로 직접 글을 쓰는 것은 너무 지저분합니다. 따라서 HTML을 파일로 별도로 관리 한 다음 도구를 사용하여 컨텐츠를 setText ()의 매개 변수로 문자열로 변환해야합니다. 다음은 예를 들어 프리 마커 템플릿 엔진입니다.
프로젝트 src/main/resources 디렉토리에서 새 템플릿 디렉토리를 만들고 test.ftl 파일을 배치하면 컨텐츠는 다음과 같습니다.
<html> <head> </head> <body> <p> 프리 마커 테스트, 환영 $ {username} </p> <img src = "cid : image"/> </body> </html>그런 다음 Freemarker와 Spring이 제공하는 도구를 사용하여 컨텐츠를 문자열로 변환하십시오. 물론 새 JAR에 의존해야합니다.
<pectionency> <groupid> org.freemarker </groupid> <artifactid> Freemarker </artifactid> <버전> 2.3.23 </version> </fectionency>
새로운 FreemarkerParser.java를 만듭니다
패키지 com.xmyself.mail; import java.util.map; import org.springframework.ui.freemarker.freemarkertemplateutils; import freemarker.template.configuration; import freemarker.template.template; 공개 클래스 FreemarkerParser {public string tohtmlstring (문자열 이름, map <문자열, 문자열> 데이터) {@suppresswarnings ( "Dequrecation") configuration config = new configuration (); config.setClassfortMplatEloading (this.getClass (), "/templates/"); {template template = config.getTemplate (이름); FreemarkerTemplateUtils.ProcessTemPlateIntOtString (템플릿, 데이터); } catch (예외 e) {e.printstacktrace (); } "실패"를 반환합니다. }}템플릿의 $ {} 컨텐츠를 맵의 값으로 바꾸고 템플릿 파일을 문자열 문자열로 변환합니다.
참고 : 프로세스 중 템플릿 경로의 구성 및 읽기는 번거롭고 일시적으로 이러한 방식으로 처리됩니다.
이메일을 보내는 코드는 매우 작은 변경 만하면됩니다.
map <string, string> data = new Hashmap <String, String> (); data.put ( "username", "chengyi"); String text = new FreemarkerParser (). TohtmlString ( "test.ftl", data); Helper.settext (텍스트, true); filesystemresource image = new FileSystemResource (새 파일 ( "d : /test.jpg"); helper.addinline ( "image", image);
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.