SSM 프레임 워 크+자바 메 일 을 기반 으로 메 일 을 보 내 는 코드 인 스 턴 스
9710 단어 Javamail우편물 을 발송 하 다
SMTP 프로 토 콜 과 SSL 암호 화 에 대해 알 아 봐 야 겠 어 요.
SMTP:간단 한 메 일 전송 프로 토 콜(Simple Mail Transfer Protocal)이 라 고 하 는데 사용자 에 게 효율 적 이 고 신뢰성 있 는 메 일 전송 을 제공 하 는 것 이 목표 입 니 다.SMTP 는 응답 을 요청 하 는 프로 토 콜 입 니 다.즉,클 라 이언 트 가 원 격 서버 에 요청 을 보 내 고 서버 응답,감청 포트 가 25 이기 때문에 작업 모드 는 두 가지 가 있 습 니 다.SMTP 를 보 내 고 SMTP 를 받 습 니 다.
SSL 암호 화:브 라 우 저 와 사이트 서버 의 안전성 을 보장 하 는 데 사용 되 는데 그 원 리 는 번역문 으로 설명 하면 다음 과 같다.
브 라 우 저가 서버 에 안전 한 웹 페이지 를 요청 할 때(보통 https:/)
서버 에서 인증서 와 숟가락 을 보 내 드 리 겠 습 니 다.
브 라 우 저 에서 인증 서 를 신뢰 할 수 있 는 기구 에서 발급 하 는 지 확인 하고 인증서 가 유효 하고 이 인증서 가 이 사이트 의 것 인지 확인 합 니 다.
암호 화 된 URL 을 포함 하여 서버 에 무 작위 대칭 키 를 암호 화 했 습 니 다.
서버 는 당신 이 보 낸 열 쇠 를 자신의 숟가락 으로 복호화 했다.그리고 이 대칭 암호 화 열 쇠 를 사용 하여 요청 한 URL 링크 를 복호화 합 니 다.
서버 는 당신 이 보 낸 대칭 열쇠 로 요청 한 웹 페이지 를 암호 화 합 니 다.너 도 같은 열 쇠 를 가지 고 있 으 면 보 낸 웹 페이지 를 복호화 할 수 있다.
그리고 자바 메 일 발송 방법 을 소개 합 니 다.먼저 자바 메 일의 jar:http://xiazai.jb51.net/201612/yuanma/mail_jb51.jar를 다운로드 해 야 합 니 다.
서버 역할 을 하 는 QQ 메 일 로 SMTP 서비스 시작:
메 일 을 보 내 는 업무 클래스 를 작성 합 니 다:
package com.appms.email;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
public class JavaEmailSender {
public static void sendEmail(String toEmailAddress,String emailTitle,String emailContent)throws Exception{
Properties props = new Properties();
// debug
props.setProperty("mail.debug", "true");
//
props.setProperty("mail.smtp.auth", "true");
//
props.setProperty("mail.host", "smtp.qq.com");
//
props.setProperty("mail.transport.protocol", "smtp");
/**SSL , SSL , **/
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
//
Session session = Session.getInstance(props);
// ,
Message msg = new MimeMessage(session);
msg.setSubject(emailTitle);
// StringBuilder, StringBuilder String ,
StringBuilder builder = new StringBuilder();
builder.append("
"+emailContent);
builder.append("
" + new Date());
msg.setText(builder.toString());
msg.setFrom(new InternetAddress(" QQ "));
Transport transport = session.getTransport();
transport.connect("smtp.qq.com", " QQ ", " SMTP ");
//
transport.sendMessage(msg, new Address[] { new InternetAddress(toEmailAddress) });
transport.close();
}
}
그리고 SpringMVC 프레임 워 크 의 Controller 클래스 를 작성 합 니 다.
/**
*
* @return
* @throws Exception
*/
@RequestMapping("/goSendEmail")
public ModelAndView goSendEmail(HttpServletRequest request)throws Exception{
ModelAndView mv = this.getModelAndView();
String email = request.getParameter("email");
if(email!=null&&!"".equals(email)){
email = email.trim();
mv.setViewName("member/send_email");
mv.addObject("email", email);
}
return mv;
}
/**
*
* @return
* @throws Exception
*/
@RequestMapping(value="/sendEmail",produces="application/json;charset=UTF-8")
@ResponseBody
public Object sendEmail(HttpServletRequest request)throws Exception{
Map<String,String> map = new HashMap<String,String>();
String msg = "ok"; //
String toEMAIL = request.getParameter("EMAIL"); //
String TITLE = request.getParameter("TITLE"); //
String CONTENT = request.getParameter("CONTENT"); //
JavaEmailSender.sendEmail(toEMAIL, TITLE, CONTENT);
map.put("result", msg);
return map;
}
jQuery TIP 플러그 인 을 사용 하여 인증 알림 을 보 여 주 었 기 때문에 해당 Jquery 파일 을 도입 해 야 합 니 다.
<script type="text/javascript" src="source/js/jquery-1.7.2.js"></script>
<!-- -->
<script type="text/javascript" src="source/js/jquery.tips.js"></script>
Jquery 폼 인증 과 Ajax 비동기 요청:
<!-- -->
<script type="text/javascript">
//
function sendEm(){
if($("#TYPE").val()=="1"){
$("#CONTENT").val(getContentTxt());
}else{
$("#CONTENT").val(getContent());
}
if($("#EMAIL").val()==""){
$("#EMAIL").tips({
side:3,
msg:' ',
bg:'#AE81FF',
time:2
});
$("#EMAIL").focus();
return false;
}
if($("#TITLE").val()==""){
$("#TITLE").tips({
side:3,
msg:' ',
bg:'#AE81FF',
time:2
});
$("#TITLE").focus();
return false;
}
if($("#CONTENT").val()==""){
$("#nr").tips({
side:1,
msg:' ',
bg:'#AE81FF',
time:3
});
return false;
}
var EMAIL = $("#EMAIL").val();
var TYPE = $("#TYPE").val();
var TITLE = $("#TITLE").val();
var CONTENT = $("#CONTENT").val();
$("#zhongxin").hide();
$("#zhongxin2").show();
$.ajax({
type: "POST",
url: 'retroaction/sendEmail.do?tm='+new Date().getTime(),
data: {EMAIL:EMAIL,TITLE:TITLE,CONTENT:CONTENT},
dataType:'json',
//beforeSend: validateData,
cache: false,
success: function(data){
if("ok" == data.result){
$("#msg").tips({
side:3,
msg:' !',
bg:'#68B500',
time:5
});
setTimeout("showdiv()",1000);
}else{
$("#msg").tips({
side:3,
msg:' !',
bg:'#68B500',
time:5
});
}
}
});
}
</script>
JSP 페이지 호출:
<!-- -->
<div>
<table style="width:98%;" >
<tr>
<td style="margin-top:0px;">
<div style="float: left;" style="width:81%"><textarea name="EMAIL" id="EMAIL" rows="1" cols="50" style="width:600px;height:20px;" placeholder=" , (;) " title=" , (;) ">${email}</textarea></div>
<div style="float: right;" style="width:19%"><a class='btn btn-mini btn-info' title=" " onclick="dialog_open();"> </i></a></div>
</td>
</tr>
<tr>
<td>
<input type="text" name="TITLE" id="TITLE" value="" placeholder=" " style="width:98%"/>
</td>
</tr>
<tr>
<td id="nr">
<script id="editor" type="text/plain" style="width:650px;height:259px;"></script>
</td>
</tr>
<tr>
<td style="text-align: center;">
<a class="btn btn-mini btn-primary" onclick="sendEm();"> </a>
<a class="btn btn-mini btn-danger" onclick="top.Dialog.close();"> </a>
</td>
</tr>
</table>
</div>
<div id="zhongxin2" class="center" style="display:none"><br/><img src="assets/images/jzx.gif" id='msg' /><br/><h4 class="lighter block green" id='msg'> ...</h4></div>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
javaxMail 로 메 일 보 내기javax mail 로 메 일 을 보 내 고, 우선 jar 패 키 지 를 추가 합 니 다. 2019 년 이 되면 마 븐 으로 프로젝트 를 구축 하 겠 습 니 다. 프로젝트 의 pom 파일 에 javax. mail 의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.