오늘 Javamail에 대해 배웠습니다. 향후 사용의 편의를 위해, 나는 코드 조각을 직접 작성하여 향후 사용의 편의를 위해 JAR 패키지에 입력했습니다. 헤헤
다음 세 코드는 내 코드를 사용하려면 직접 복사하십시오. JAR 패키지를 Javaeye에 업로드하는 방법을 모르기 때문에 친구들은 돌아가서 스스로 만듭니다.
내 코드에는 세 가지 클래스가 있습니다.
첫 번째 수업 : MailSenderInfo.java
코드 사본은 다음과 같습니다.
패키지 com.util.mail;
/**
* 이메일을 보내는 데 필요한 기본 정보
*/
java.util.properties import;
공개 클래스 MailSenderInfo {
// 메일을 보내는 서버의 IP와 포트
개인 문자열 MailServerHost;
개인 문자열 mailserverport = "25";
// 이메일 발신자의 주소
adddress의 개인 문자열;
// 이메일 수신자의 주소
개인 문자열 Toaddress;
// 이메일 보내기 서버의 사용자 이름 및 비밀번호로 로그인
개인 문자열 사용자 이름;
개인 문자열 비밀번호;
// 인증이 필요합니다
개인 부울 검증 = 거짓;
// 이메일 주제
개인 문자열 주제;
// 이메일의 텍스트 내용
개인 문자열 내용;
// 이메일 첨부 파일의 파일 이름
개인 문자열 [] att
/**
* 이메일 세션 속성을 얻습니다
*/
공개 속성 getProperties () {
속성 p = 새로운 속성 ();
p.put ( "mail.smtp.host", this.mailserverhost);
p.put ( "mail.smtp.port", this.mailserverport);
p.put ( "mail.smtp.auth", validate? "true": "false");
반환 p;
}
공개 문자열 getMailServerHost () {
Return MailServerHost;
}
public void setmailserverhost (String MailServerHost) {
this.mailserverhost = mailserverhost;
}
공개 문자열 getmailserverport () {
반품 MailServerport;
}
public void setmailserverport (String MailServerport) {
this.mailserverport = MailServerport;
}
공개 부울 isvalidate () {
반환 유효성 검사;
}
public void setValidate (부울 검증) {
this.validate = Validate;
}
public String [] getAttachFilenames () {
첨부 파일 이름을 반환합니다.
}
public void setattachfilenames (string [] filenames) {
this.attachfilenames = filenames;
}
공개 문자열 getFromAddress () {
adddress에서 돌아 오십시오.
}
public void setfromaddress (string fromAddress) {
this.fromAddress = FromAddress;
}
공개 문자열 getpassword () {
리턴 비밀번호;
}
public void setpassword (String password) {
this.password = 비밀번호;
}
공개 문자열 getToaddress () {
Toaddress를 반환하십시오.
}
공개 void settoaddress (String toaddress) {
this.toaddress = toaddress;
}
공개 문자열 getUserName () {
사용자 이름을 반환합니다.
}
public void setusername (String username) {
this.username = username;
}
public string getSubject () {
반환 주제;
}
public void setSubject (문자열 주제) {
this.subject = 주제;
}
공개 문자열 getContent () {
반환 내용;
}
public void setContent (String TextContent) {
this.content = textContent;
}
}
두 번째 클래스 : Simplemailsender.java
코드 사본은 다음과 같습니다.
패키지 com.util.mail;
import java.util.date;
java.util.properties import;
import javax.mail.address;
import javax.mail.bodypart;
javax.mail.message import;
javax.mail.messagingException import;
import javax.mail.multipart;
javax.mail.session import;
import javax.mail.transport;
import javax.mail.internet.internetAddress;
import javax.mail.internet.mimebodypart;
javax.mail.internet.mimemessage import;
import javax.mail.internet.mimemultipart;
/**
* 간단한 메일 (첨부 파일없이 메일) 발신자
*/
공개 클래스 Simplemailsender {
/**
* 텍스트 형식으로 이메일을 보내십시오
* @param mailinfo 전송 할 이메일에 대한 정보
*/
Public Boolean SendTextMail (MailSenderInfo MailInfo) {
// 신원 인증이 필요한지 여부를 결정합니다
myauthenticator authenticator = null;
속성 pro = mailinfo.getProperties ();
if (mailInfo.isvalidate ()) {
// ID 인증이 필요한 경우 비밀번호 인증자를 작성하십시오.
authenticator = new myauthenticator (mailinfo.getusername (), mailinfo.getpassword ());
}
// 전자 메일 세션 속성 및 비밀번호 유효성 검사기를 기반으로 이메일을 보내도록 세션을 구성합니다.
세션 sendmailsession = session.getDefaultInstance (Pro, Authenticator);
노력하다 {
// 세션을 기반으로 메일 메시지를 만듭니다
메시지 mailmessage = new Mimemessage (sendmailsession);
// 이메일 발신자 주소를 만듭니다
주소 = new InternetAddress (mailInfo.getFromAddress ());
// 이메일 메시지의 발신자를 설정합니다
MailMessage.setfrom (from);
// 이메일의 수신자 주소를 작성하여 이메일 메시지로 설정합니다.
주소 = new InternetAdDress (mailInfo.getToaddress ());
MailMessage.setRecipient (message.recipienttype.to, to);
// 이메일 메시지의 주제를 설정합니다
mailmessage.setsubject (mailinfo.getSubject ());
// 이메일 메시지를 보내는 시간을 설정합니다
MailMessage.setSentDate (새 날짜 ());
// 이메일 메시지의 기본 내용을 설정합니다
문자열 mailContent = mailInfo.getContent ();
MailMessage.settext (MailContent);
// 메일을 보내십시오
송신 .send (MailMessage);
진실을 반환하십시오.
} catch (MessagingException ex) {
ex.printstacktrace ();
}
거짓을 반환합니다.
}
/**
* HTML 형식으로 이메일을 보내십시오
* @param mailinfo 메일 정보를 전송합니다
*/
Public Static Boolean sendhtmlmail (mailsenderinfo mailinfo) {
// 신원 인증이 필요한지 여부를 결정합니다
myauthenticator authenticator = null;
속성 pro = mailinfo.getProperties ();
// ID 인증이 필요한 경우 비밀번호 인증자를 작성하십시오.
if (mailInfo.isvalidate ()) {
authenticator = new myauthenticator (mailinfo.getusername (), mailinfo.getpassword ());
}
// 전자 메일 세션 속성 및 비밀번호 유효성 검사기를 기반으로 이메일을 보내도록 세션을 구성합니다.
세션 sendmailsession = session.getDefaultInstance (Pro, Authenticator);
노력하다 {
// 세션을 기반으로 메일 메시지를 만듭니다
메시지 mailmessage = new Mimemessage (sendmailsession);
// 이메일 발신자 주소를 만듭니다
주소 = new InternetAddress (mailInfo.getFromAddress ());
// 이메일 메시지의 발신자를 설정합니다
MailMessage.setfrom (from);
// 이메일의 수신자 주소를 작성하여 이메일 메시지로 설정합니다.
주소 = new InternetAdDress (mailInfo.getToaddress ());
// message.recipientType.to 속성은 수신기의 유형이 다음에
MailMessage.setRecipient (message.recipienttype.to, to);
// 이메일 메시지의 주제를 설정합니다
mailmessage.setsubject (mailinfo.getSubject ());
// 이메일 메시지를 보내는 시간을 설정합니다
MailMessage.setSentDate (새 날짜 ());
// minimultipart 클래스
MainPart = New Mimemultipart ();
// HTML 컨텐츠가 포함 된 MimeBodyPart를 만듭니다
BodyPart html = New MimebodyPart ();
// HTML 컨텐츠를 설정합니다
html.setContent (mailinfo.getContent (), "text/html; charset = utf-8");
mainPart.AddBodyPart (HTML);
// MINIMULTIPART 객체를 메일 내용으로 설정합니다
MailMessage.setContent (MainPart);
// 메일을 보내십시오
송신 .send (MailMessage);
진실을 반환하십시오.
} catch (MessagingException ex) {
ex.printstacktrace ();
}
거짓을 반환합니다.
}
}
세 번째 범주 : myauthenticator.java
코드 사본은 다음과 같습니다.
패키지 com.util.mail;
javax.mail.*;
공개 클래스 myauthenticator 확장 인증 자 {
문자열 username = null;
문자열 암호 = null;
public myauthenticator () {
}
public myauthenticator (문자열 사용자 이름, 문자열 암호) {
this.username = username;
this.password = 비밀번호;
}
보호 된 PasswordAuthentication getPasswordAuthentication () {
새 비밀번호를 반환합니다 (사용자 이름, 비밀번호);
}
}
다음은 위의 세 클래스를 사용하는 코드입니다.
코드 사본은 다음과 같습니다.
public static void main (String [] args) {
//이 클래스는 주로 이메일을 설정합니다
MailSenderInfo MailInfo = New MailSenderInfo ();
MailInfo.SetMailServerHost ( "smtp.163.com");
mailinfo.setmailserverport ( "25");
mailinfo.setValidate (true);
mailinfo.setusername ( "[email protected]");
MailInfo.setpassword ( "*********"); // 이메일 비밀번호
mailinfo.setfromaddress ( "[email protected]");
MailInfo.setToaddress ( "[email protected]");
MailInfo.SetSubject ( "Set Mailbox Title");
MailInfo.setContent ( "사서함 컨텐츠 설정");
//이 클래스는 주로 이메일을 보냅니다
Simplemailsender SMS = 새로운 Simplemailsender ();
sms.sendtextmail (mailinfo); // 텍스트 형식을 보냅니다
sms.sendhtmlmail (mailinfo); // html 형식을 보내십시오
}
마지막으로 다음에주의를 기울 이도록하겠습니다.
1.이 코드를 사용하면 Javamail의 이메일 전송 기능을 완료 할 수 있습니다. 세 가지 범주는 모두 없어야합니다.
2. Com.util.mail 패키지를 사용 하여이 세 클래스를 좋아하지 않으면 직접 변경할 수 있지만 세 클래스 파일은 동일한 패키지에 있어야합니다.
3. 163 개의 이메일 주소가 등록 된 경우 방금 등록한 이메일 주소를 사용하지 마십시오. 당신은 그것을 보낼 수 없기 때문에. 방금 등록한 이메일 주소는 그러한 권한을 제공하지 않으므로 확인을 전달할 수 없습니다. 자주 사용하는 이메일 주소를 사용해야하며 시간이 오래 걸립니다.
4. 즉, 163SMTP 서버를 사용하는 경우 163 개의 이메일 주소를 사용하여 전자 메일 주소를 보내야합니다.
5. 인터넷에는 javamail 검증 오류에 대한 많은 설명이 있지만, 나는 하나만 볼 수 있습니다. 내 세 번째 카테고리입니다. 모든 코드를 복사하는 한 문제가 없을 것 같습니다.