웹 프로젝트를 예로 들면, 코드를 이식할 수 있습니다.
먼저 mail.jar 패키지를 가져온 다음 자신만의 클래스를 만듭니다.
1:HTMLSender 클래스
다음과 같이 코드 코드를 복사합니다 .
패키지 com.txq.mail;
java.util.Properties 가져오기;
javax.mail.Message 가져오기;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
javax.mail.Session 가져오기;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
javax.mail.internet.MimeMessage 가져오기;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
/**
*
* @author 관리자
*
*/
공개 클래스 HTMLSender {
비공개 MimeMessage 메시지;
사유 재산 소품;
개인 세션 세션;
개인 문자열 이름 = "";
개인 문자열 비밀번호 = "";
공개 HTMLSender(문자열 호스트, 문자열 이름, 문자열 비밀번호)
{
this.name = 이름;
this.password = 비밀번호;
props = System.getProperties();
props.put("mail.smtp.host", 호스트);
props.put("mail.smtp.auth","true");
MyAuthenticator auth = new MyAuthenticator(이름,비밀번호);
세션 = Session.getDefaultInstance(props,auth);
message = 새로운 MimeMessage(세션);
새로운 MimeMultipart();
}
공개 무효 setFrom(문자열 from)
{
노력하다
{
message.setFrom(new InternetAddress(from));
}
잡기(AddressException e)
{
e.printStackTrace();
}
잡기(MessagingException e)
{
e.printStackTrace();
}
}
공개 무효 setTo(문자열 to)
{
노력하다
{
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
}
catch(AddressExceptione)
{
e.printStackTrace();
}
catch(MessagingException e)
{
e.printStackTrace();
}
}
공공 무효 setSubject(문자열 주제)
{
노력하다
{
message.setSubject(제목);
}
잡기(예외e)
{
e.printStackTrace();
}
}
공개 무효 setContect(문자열 내용)
{
노력하다
{
message.setContent(content,"text/html;charset=utf-8");
}
잡기(예외 e)
{
e.printStackTrace();
}
}
공개 부울 보내기()
{
노력하다
{
전송 전송 = session.getTransport("smtp");
Transport.connect((String)props.get("mail.smtp.host"), 이름, 비밀번호);
Transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
운송.닫기();
사실을 반환;
}
catch(NoSuchProviderException e)
{
e.printStackTrace();
거짓을 반환;
}
catch(MessagingException e)
{
e.printStackTrace();
거짓을 반환;
}
}
}
2: MyAuthenticator 클래스
다음과 같이 코드 코드를 복사합니다 .
패키지 com.txq.mail;
javax.mail.Authenticator 가져오기;
import javax.mail.PasswordAuthentication;
공개 클래스 MyAuthenticator는 인증자를 확장합니다.
문자열 이름.
문자열 비밀번호;
public MyAuthenticator(문자열 이름, 문자열 비밀번호)
{
this.name = 이름;
this.password = 비밀번호;
getPasswordAuthentication();
}
보호된 비밀번호 인증 getPasswordAuthentication()
{
새로운 PasswordAuthentication(이름, 비밀번호)를 반환합니다.
}
}
3: MailAction 클래스
다음과 같이 코드 코드를 복사합니다 .
패키지 com.txq.action;
import java.io.PrintWriter;
import com.opensymphony.xwork2.ActionSupport;
com.txq.mail.HTMLSender 가져오기;
공개 클래스 MailAction은 ActionSupport를 확장합니다.
개인 문자열 이메일;
공개 문자열 sendEmail(){
//에이전트 호스트-Sina
문자열 호스트 = "smtp.sina.cn";
//계정-시나 계정
문자열 이름 = "followmusic";
//비밀번호-시나비밀번호
문자열 비밀번호 = "followmusic";
//이메일 객체 생성
HTMLSender mail = new HTMLSender(호스트,이름,비밀번호);
//보내는 계정
mail.setFrom("[email protected]");
//메일 계정
mail.setTo("[email protected]");
//이메일 제목
mail.setSubject("타오관심사");
//이메일 내용
mail.setContect("당신의 친구가 관심 분야를 검색하도록 당신을 초대했습니다~");
if(mail.send())
{
성공을 반환합니다.
}
또 다른
{
"오류"를 반환합니다.
}
}
공개 문자열 getEmail() {
이메일 반환;
}
공개 무효 setEmail(문자열 이메일) {
this.email = 이메일;
}
}