태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[펌] JavaMail

JAVA/Basic 2008/09/23 14:56

JavaMail 1.4
http://java.sun.com/products/javamail/index.jsp
http://java.sun.com/products/javamail/downloads/index.html

압축풀어서 mail.jar 파일을 %JAVA_HOME%\lib 아래 복사


JavaBeans Activation Framework (JAF)
http://java.sun.com/products/javabeans/jaf/index.jsp
http://java.sun.com/products/javabeans/jaf/downloads/index.html

압축풀어서 activation.jar 파일을 %JAVA_HOME%\lib 아래 복사


classpath 에 mail.jar 와 activation.jar 파일 추가



import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


public class MailTest {

        public static void main(String[] args)
        throws Exception
        {
                String host =  "SMTP서버";
                String senderemail = "보내는 사람 메일 주소";
                String email = "받는 사람 메일 주소";
                String subject = "제목";
                String mailtext = "<html><body><h1>내용</h1></body></html>";
                String[] attached = {"D:/projects/encyclopedia/java/mail/석양.jpg", "D:/projects/encyclopedia/java/mail/겨울.jpg"};

                sendEmail(host, senderemail, email, subject, mailtext, attached);
        }


        /**
         * send Email.
         *
         * @param       host    메일서버주소
         * @param       from    보내는 사람
         * @param       to              받는사람 - ","로 구분된 메일 주소
         * @param       subject 제목
         * @param       mailtext        내용
         * @param       attached        첨부파일
         * @result      boolean
         * @exception   javax.mail.internet.AddressException
         *                              javax.mail.MessagingException
         */
        public static void sendEmail(String host, String senderemail, String email,
         String subject,String mailtext, String[] attached)
        throws javax.mail.internet.AddressException, javax.mail.MessagingException,
        java.io.UnsupportedEncodingException
        {
                Properties props = new Properties();


                props.put("mail.smtp.host", host);


                Session session = Session.getDefaultInstance(props, null);
                Multipart mp = new MimeMultipart();


                // create a message
                MimeMessage msg = new MimeMessage(session);
                msg.setFrom(new InternetAddress(senderemail));


                // 받는사람
                InternetAddress[] toAddress = InternetAddress.parse(email);
                msg.setRecipients(Message.RecipientType.TO, toAddress);


                // 제목
                msg.setSubject(subject, "euc-kr");


                // 내용
                MimeBodyPart mbp1 = new MimeBodyPart();

                mbp1.setContent(mailtext, "text/html; charset=euc-kr");

                mp.addBodyPart(mbp1);


                System.out.println("host="+host);
                System.out.println("sender="+senderemail);
                System.out.println("receive="+email);
                System.out.println("mbp1="+mbp1);


                // 파일첨부
                if (attached != null) {
                        for (int i = 0; i < attached.length; i++) {

                                MimeBodyPart mbp2 = new MimeBodyPart();

                                FileDataSource fds = new FileDataSource(attached[i]);
                                mbp2.setDataHandler(new DataHandler(fds));

                                mbp2.setFileName(iso8859(fds.getName()));

                                mp.addBodyPart(mbp2);
                        }
                }


                // 메시지 add
                msg.setContent(mp);


                // header 에 날짜 삽입
                msg.setSentDate(new Date());


                // send the message
                Transport.send(msg);
        }


        public static String iso8859(String strStr)
        throws java.io.UnsupportedEncodingException
        {
                if (strStr == null)
                {
                        return  null;
                }
                else
                {
                        return new String(strStr.getBytes("KSC5601"), "8859_1");
                }
        }
}

top

Trackback Address :: http://www.ssial.com/trackback/89 관련글 쓰기

  1. 원이 2008/10/30 21:14 댓글주소 | 수정/삭제 | 댓글

    잘보고있습니다. 자바를 한동안 안봤더니...ㅠ.ㅠ
    질문이 있어서요
    C언어에선 system함수를 써서 명령어를 실행시킬수 있습니다
    예를들면 system("ping ssial.com");
    이런함수를써서 명령을 할수 있습니다.
    자바에선 어떻게 쓰나요?
    그리고 리눅스에선 greb을 써서 특정 문장을 출력할수 있습니다.
    예를들면 system("ping ssial.com | greb from");
    도스에선 어떻게 쓸수 있나요? 아님 자바에서 따로 처리해줄수 있나요?

  2. 원이 2008/10/30 22:13 댓글주소 | 수정/삭제 | 댓글

    아..그리고jsp에서 세션값 저장할때 보통 웹페이지에 히든값으로
    넘기거나 주소표시줄에 넘기나요?

    • 일소 2008/11/01 10:37 댓글주소 | 수정/삭제

      변수를 따로 넘기는 것은 request영역에 해당하는 것이에요. 그러니까 HTTP에서 post또는 get method를 통해서 요청하거나 요청받는 경우에 해당하는 거예요. 하지만 session은 container의 내장객체로 서버내부에서 사용하는 것이지요. 그러니까 그냥 session.setAttribute("넘기고 싶은 변수명",값)을 사용해서 변수를 다음페이지에서 사용하면 된답니다.

Write a comment