EJB(xml/mail/jms/jdbc)
2018.06.06 / 11:47

qmail , javamail ¸¦ ÀÌ¿ëÇØ ¸ÞÀÏ °¡Á®¿À±â

ÀλçÀ̵åÀÚ¹Ù
Ãßõ ¼ö 177

ÇöÀç ¸®´ª½º·¡µåÇÞ9.0, qmail, apache,tomcat,mysql¸¦ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.

±×·±µ¥ À̳ðÀÇ ÀÚ¹Ù¸ÞÀÏ ¶§¹®¿¡ ¹ÌÄ¡°Ú½À´Ï´Ù.

outlook ¿¡¼­´Â pop3¸¦ ÅëÇØ ¸ÞÀÏÀ» Àß °¡Á®¿É´Ï´Ù.

±×·±µ¥ ÀÚ¹Ù¸ÞÀÏ¿¡¼­´Â ¸ÞÀÏÀÌ ÀÖÀ» °æ¿ì¿¡´Â ¿¡·¯°¡ ³³´Ï´Ù.

¸ÞÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ¿¬°áÀÌ ¼º°øÇϴµ¥, ±× ÀÌÀ¯¸¦ ¸ð¸£°Ú½À´Ï´Ù.

´ÙÀ½Àº Å×½ºÆ®¸ÞÀÏjsp ¼Ò½ºÀÔ´Ï´Ù

<%@ page  import="javax.mail.*,javax.mail.internet.*,java.io.*,java.util.*" contentType="text/html;charset=euc-kr" %>
<%
try{ 
    Properties props = System.getProperties();
	out.println("aa");
	props.put("mail.pop3.host", "host");
	out.println("bb");
	//PopupAuthenticator popupAuthenticator = new PopupAuthenticator();
    //PasswordAuthentication auth = popupAuthenticator.getPasswordAuthentication();
	Session sess = Session.getDefaultInstance(props, null); 
    Store store = sess.getStore("pop3"); 
    out.println("cc");
	store.connect("host","test","test");
	out.println("dd");	
    Folder folder = store.getFolder("INBOX"); 
    folder.open(Folder.READ_ONLY); 
	out.println("add");
    Message message[] = folder.getMessages();
    for (int i=0, n=message.length; i<n; i++) {
		out.println("ee");
		Address addr = message[i].getFrom()[0];
		String subject = message[i].getSubject();
		String content = message[i].getContent().toString();
		out.println(addr);
		out.println(subject);
		out.println(content);
        if(message[i].isMimeType("text/plain")){
            System.out.println("ÀϹÝÅؽºÆ®¸ÞÀÏÀÔ´Ï´Ù.");
			out.println("ÀϹÝÅؽºÆ®");
        }else if(message[i].isMimeType("multipart/*")) {   // ÷ºÎÆÄÀÏÀ϶§
            System.out.println("÷ºÎ¸ÞÀÏÀÔ´Ï´Ù.");
			out.println("÷ºÎ¸ÞÀÏÀÔ´Ï´Ù");
           String filename =  message[i].getFileName(); 
            if(filename != null){ 
                InputStream in = message[i].getInputStream();
				int c = in.read();
                FileOutputStream fout = new FileOutputStream(new File(filename)); 
                while(c!=-1){ 
                    fout.write(c); 
                    
                } 
                fout.close(); 
                in.close(); 
            }
        }
    }
    folder.close(true); 
    store.close(); 
	out.println("¼º°ø");
}catch(Exception e){ 
	out.println(e);
    System.out.print(e); 
}

%>

¿¡·¯ ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù.
org.apache.jasper.JasperException: javax/activation/DataSource
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
:
:
javax.servlet.ServletException: javax/activation/DataSource
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.mailtest01_jsp._jspService(mailtest01_jsp.java:104)

workÆú´õ¿¡ »ý¼ºµÈ mailtest01_jsp.java104¶óÀÎÀº ´ÙÀ½°ú °°½À´Ï´Ù.
if (pageContext != null) pageContext.handlePageException(t);

¿ä ¶óÀο¡ ÀÚ²Ù ¾Ö·¯°¡ ³ª³»¿ä.

¹¹°¡ À߸øÀÎÁö °¨À» ¸øÀâ°Ú½À´Ï´Ù.
Áö±Ý sendmail ¼³Ä¡Çß´Ù°¡ ¾ÈµÇ¼­ ´Ù½Ã qmail ¼³Ä¡ÇÏ°í ¸®´ª½º ¼ÂÆÃÇÏ°í 
¸îÀÏ° ÀÌ·¯°í ÀÖ³»¿ä.
¿©·¯ºÐµéÀÇ Á¶¾ðÀ» ºÎŹµå¸®°Ú½À´Ï´Ù.
ªÀº ¼Ò°ßÀÌ¶óµµ ºÎŹµå¸±²²¿ë ^^*
°¨»çÇÕ´Ï´Ù.[/code]

File attachments: 
÷ºÎÆÄÀÏ Å©±â
Plain text icon mailtest01_jsp.java.txt3.4 KB


package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import org.apache.jasper.runtime.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.*;
import java.util.*;

public class mailtest01_jsp extends HttpJspBase {


  private static java.util.Vector _jspx_includes;

  public java.util.List getIncludes() {
    return _jspx_includes;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    javax.servlet.jsp.PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;


    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html;charset=euc-kr");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\r\n");

//try{ 
    Properties props = System.getProperties();
	out.println("aa");
	props.put("mail.pop3.host", "test.test.com");
	out.println("bb");
	//PopupAuthenticator popupAuthenticator = new PopupAuthenticator();
    //PasswordAuthentication auth = popupAuthenticator.getPasswordAuthentication();
	Session sess = Session.getDefaultInstance(props, null); 
    Store store = sess.getStore("pop3"); 
    out.println("cc");
	store.connect("test.test.com","test","test");
	out.println("dd");	
    Folder folder = store.getFolder("INBOX"); 
    folder.open(Folder.READ_ONLY); 
	out.println("add");
    Message message[] = folder.getMessages();
    for (int i=0, n=message.length; i<n; i++) {
		out.println("ee");
		Address addr = message[i].getFrom()[0];
		String subject = message[i].getSubject();
		String content = message[i].getContent().toString();
		out.println(addr);
		out.println(subject);
		out.println(content);
       /* if(message[i].isMimeType("text/plain")){
            System.out.println("�¼ë?�???�¸ë?�¼ì??�???.");
			out.println("�¼ë?�???��");
        }else if(message[i].isMimeType("multipart/*")) {   // 첨ë��???�¼ë??
            System.out.println("첨ë�ë©???�???��.");
			out.println("첨ë�ë©???�???��");
           String filename =  message[i].getFileName(); 
            if(filename != null){ 
                InputStream in = message[i].getInputStream();
				int c = in.read();
                FileOutputStream fout = new FileOutputStream(new File(filename)); 
                while(c!=-1){ 
                    fout.write(c); 
                    
                } 
                fout.close(); 
                in.close(); 
            }
        }*/
    }
    folder.close(true); 
    store.close(); 
	out.println("�±ê³µ");
//}catch(Exception e){ 
//	out.println(e.printStackTrace());
//}


    } catch (Throwable t) {
      out = _jspx_out;
      if (out != null && out.getBufferSize() != 0)
        out.clearBuffer();
      if (pageContext != null) pageContext.handlePageException(t);
    } finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
    }
  }
}