Whiteship's Note

Gmail 계정 사용해서 이메일 보내는 프로그램

모하니?/Coding : 2007. 5. 23. 12:27


사용자 삽입 이미지
사용자 삽입 이미지

원래는 Spring 22장 Email을 보고 코딩하고 있었는데 잘 안되더군요. 그래서 Gmail 설정에 가서 도움말을 봤더니 SSL 인증을 사용하는데 그와 관련된 Spring 코드를 아직 찾아보지 않았습니다. MailSender 에서 SSL 설정하는 메소드가 있어야 할 것 같은데 일단 JavaMail API로 어떻게 돌아가는지 확인해 봤습니다.

JavaMail API 에서 SMTPSSLTransport 클래스가 MailSender의 하위 클래스인 JavaMailSenderImpl에 대응하는 클래스인데 특징은 이름에서 알 수 있듯이 SSL을 지원하는 클래스인 듯 하네요.
    public void greetingEmail2(MemberInfo memberInfo){
        URLName urln = new URLName("smtp", "smtp.gmail.com", 587, "", "", "");

        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.starttls.enable","true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.auth", "true");

        Authenticator auth = new SMTPAuthenticator();
        Security.addProvider(new Provider());
        Session session = Session.getDefaultInstance(props, auth);
        SMTPSSLTransport trans = new SMTPSSLTransport(session, urln);

        trans.setStartTLS(true);
        Message message = new MimeMessage(session);
        try {
            message.setSubject("hi i'm keesun");
            message.setText("hehehehe");

            InternetAddress[] addressTo = new InternetAddress[1];
            addressTo[0] = new InternetAddress(memberInfo.getEmail());

            message.setRecipients(Message.RecipientType.TO, addressTo);

            trans.send(message);
            trans.close();
        }
        catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    private class SMTPAuthenticator extends javax.mail.Authenticator {

        public PasswordAuthentication getPasswordAuthentication() {
            String username = "Gmail 계정";
            String password = "Gmail 비번";
            return new PasswordAuthentication(username, password);
        }
    }

코드를 조금만 바꾸면 모든 회원에게 공지메일을 보낼 수도 있습니다.ㅋㅋ;;
코드를 조금 더 바꾸면 간단하게 사용할 수 있게 Util 클래스로 만들 수 있을 것 같습니다.

근데 Naver는 우수회원(네이버 메일 자주 쓰는 사람)만 smtp 사용할 수 있고 DAUM은 아예 smtp 를 지원하는지 안하는지도 모르겠고.. 너무들해열!!! 이메일이 아니라 FTP가 되가고 있는 국내 이메일 서비스의 경향인가;;
top

  1. Favicon of http://decoder.tistory.com BlogIcon decoder 2007.05.23 12:52 신고 PERM. MOD/DEL REPLY

    요것 참 재밌네요. 좋은 정보 감사합니다. :)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.05.23 13:21 신고 PERM MOD/DEL

    코드가;; 참 복잡하죠. ^^;
    좀 더 다듬어서 편하게 쓸 수 있게 만들어 봐야겠어요.

  2. Favicon of http://gerions.egloos.com BlogIcon 윤걸 2007.05.23 13:12 PERM. MOD/DEL REPLY

    SMTP 는 예전에는 무료로 제공해주는 곳이 대부분이었지만, 스팸 문제가 심각해지면 대부분 공개를 안 하게되었지... ^^;; 실제로 나도 메일서버 운영하는데 스팸 릴레이 문제때문에 고생한적이 있단다~

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.05.23 13:18 신고 PERM MOD/DEL

    아;; 스팸...그렇군요.

    AJN에도 한수형이 메일 서버 설치 하셨던 것 같은데 리눅스 공부해야겠네요. ㄷㄷㄷ; 막히면 윤걸이형이 도와주시겠군요. :)

  3. 황제 2010.05.24 15:28 PERM. MOD/DEL REPLY

    요 코드는 불필요해 보이네요 ^^ ===> Security.addProvider(new Provider());
    잘 사용했어요~ 감사.

    Favicon of http://whiteship.me BlogIcon 기선 2010.05.24 15:53 PERM MOD/DEL

    음.. 그런가보군요;
    몰겠습니다. 하두 오래전에 써둔거라 코드가.. 완전히 별로네요.ㅋㅋ

Write a comment.




: 1 : ··· : 255 : 256 : 257 : 258 : 259 : 260 : 261 : 262 : 263 : ··· : 299 :