jsp에서 메일을 전송하려 하는데 에러발생

smhdunk의 이미지

<%@ 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를 이용하여 해결해보려고 했는데 계속해서 에러가 나네요...
해결방법좀 부탁드립니다.

dgkim의 이미지

제가 메일발송시 인증정보를 사용한 코드 일부를 보여드립니다.

            if ( smtpUser != null && smtpUser.length() > 1 ) {
                props.put("mail.smtp.auth", "true");
                Authenticator auth = new SMTPAuthenticator(smtpUser, smtpPassword);
                msgSession = Session.getDefaultInstance(props, auth);
            } else {
                msgSession = Session.getDefaultInstance(props);
            }

즉, auth 인스턴스는 준비했는데, 사용하지 않은 것 같네요.

저는 Session.getDefaultInstance 메소드에 props, auth를 넘겨서 세션을 만들었습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.