jsp로 이메일 보내기
저자:Eve Cole
업데이트 시간:2009-07-02 17:13:09
jsp로 이메일 보내기
1. sun 사양의 sun.net.smtp 패키지를 지원하는 모든 JSP 엔진(예: JSWDK)을 통해 메일을 보낼 수 있습니다.
(경고: jsp 프로그램의 이식성에 영향을 미치는 내장된 내부 Sun 사양 패키지를 사용하십시오.)
다음 스크립틀릿은 SmtpClient 클래스를 사용하여 jsp 파일로 이메일을 보냅니다.
2. JavaMail은 공식 Java 메일 API입니다. http://java.sun.com/products/javamail/을 참조하세요. API는 sun.net.smtp.SmtpClient보다 더 풍부하고 복잡하지만 이식 가능합니다. JavaMail API를 포함하는 MailSender 클래스가 여기에서 다시 생성됩니다. 아래와 같이:
// ms_ 접두사는 MailSender 클래스 변수용입니다.
// str 접두어는 문자열용입니다.
// astr 접두사는 문자열 배열용입니다.
// strbuf 접두사는 StringBuffers 등을 위한 것입니다.
공개 메일 발신자(
문자열 strFrom, // 보낸 사람
String[] astrTo, // 수신자
String[] astrBCC, // 숨은참조 수신자, 선택사항
문자열 strSubject, // 제목
부울 디버깅)
{
ms_strFrom = strFrom; // 메시지를 보낸 사람
ms_astrTo = astrTo; // 메시지를 보내는 사람(복수형)
ms_debugging = 디버깅; // 메시지를 보내는 사람(복수형)
// 호스트 설정
속성 props = 새 속성();
props.put("mail.smtp.host", ms_strSMTPHost);
// 일부 속성을 생성하고 기본 세션을 가져옵니다.
세션 세션 = Session.getDefaultInstance(props, null);
session.setDebug(ms_debugging);
노력하다 {
//메시지 생성
ms_msg = 새로운 MimeMessage(세션);
//에서 설정
InternetAddress from = new InternetAddress(strFrom);
ms_msg.setFrom(from);
// 다음으로 설정
InternetAddress[] 주소 = 새로운 InternetAddress[astrTo.length];
for (int i = 0; i astrTo.length; ++i)
{
주소[i] = new InternetAddress(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, 주소);
// 숨은참조 수신자를 설정합니다.
if (astrBCC != null)
{
주소 = 새 인터넷 주소[astrBCC.length];
for (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "]는 다음과 같습니다: '" + astrBCC[i] + "'");
주소[i] = new InternetAddress(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, 주소);
}
//주제 설정
ms_msg.setSubject(strSubject);
// 메시지를 담을 문자열 버퍼를 설정합니다.
ms_strbufMsg = 새로운 StringBuffer();
} 잡기(MessagingException mex) {
mex.printStackTrace(System.err);
} catch (예외예외) {
ex.printStackTrace(System.err);
}
}
공공 무효 ms_add(문자열 strText)
{
ms_strbufMsg.append(strText);
}
공개 무효 ms_send()
{
노력하다 {
// 내용을 일반 텍스트로 설정
ms_msg.setContent(new String(ms_strbufMsg), "text/plain");
// 그리고 멀리
Transport.send(ms_msg);
} catch (예외예외) {
System.out.println("MailSender.ms_send에서 예외 발생: " + ex);
}
}