jsp에서 메일을 전송하려 하는데 에러발생
<%@ page contentType = "text/html; charset=utf-8" %> <%@ page import="java.util.*,java.io.*,javax.mail.*,javax.mail.internet.*,javax.activation.*" %> <% class MyAuthentication extends Authenticator { PasswordAuthentication passwordAuthentication; MyAuthentication(String userName, String password) { passwordAuthentication = new PasswordAuthentication(userName, password); } public PasswordAuthentication getPasswordAuthentication() { return passwordAuthentication; } } %> <% String subject = "aaaTest"; String content = "bbbbbbb"; String to = "aaa@nate.com"; String from = "bbb@smtpserver.co.kr"; // 임의로 smtpserver라고 했습니다. String mailServerName = "mail.smtpserver.co.kr"; int mailServerPort =25; Properties props = new Properties(); props.put("mail.smtp.host", mailServerName); props.put("mail.smtp.port", String.valueOf(mailServerPort)); props.put("mail.smtp.auth","true"); Authenticator auth = new MyAuthentication("id","pw"); Session sess= Session.getInstance(props, null); Message msg = new MimeMessage(sess); InternetAddress address = new InternetAddress(to); InternetAddress fromAddr = new InternetAddress(from); msg.setFrom(fromAddr); msg.setRecipient(Message.RecipientType.TO, address); msg.setSubject(subject); msg.setSentDate(new java.util.Date()); msg.setContent(content,"text/html;charset=euc-kr"); Transport.send(msg); %> <script language="javascript"> alert("success"); </script>
까지가 소스이구요
에러부분은
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /sample/Ab.jsp at line 45
42: msg.setSubject(subject);
43: msg.setSentDate(new java.util.Date());
44: msg.setContent(content,"text/html;charset=euc-kr");
45: Transport.send(msg);
46:
47:
48: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
javax.servlet.ServletException: javax.mail.AuthenticationFailedException: failed to connect, no password specified?
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.sample.Ab_jsp._jspService(Ab_jsp.java:129)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:33
smtp 서버를 이용해 메일을 보내다 보니 같은 smtp 서버내에서는 메일전송이 잘 되는데
nate, naver, daum 과 같은 사이트는 smtp 인증같은걸 해야해서 전송이 안되더라구요
그래서 mail.smtp.auth를 이용하여 해결해보려고 했는데 계속해서 에러가 나네요...
해결방법좀 부탁드립니다.
제가 했던 소스 첨부합니다.
제가 메일발송시 인증정보를 사용한 코드 일부를 보여드립니다.
즉, auth 인스턴스는 준비했는데, 사용하지 않은 것 같네요.
저는 Session.getDefaultInstance 메소드에 props, auth를 넘겨서 세션을 만들었습니다.
댓글 달기