环境:jdk1.7
邮件服务器: james2.3.2
1. 建立java工程,导入jar包 javax.mail.jar
2. 编写邮件实体类
==================MailInfo.java====================
package com.obtk.entitys;
import java.io.File;
/**
* @author Administrator
*/
public class MailInfo {
//服务器(用域名表示wx.com 127.0.0.1)
private String mailServer;
private String mailSender; //邮件发送者
private String mailReceiver; //邮件接受者
private String mailSubject; //邮件标题
private String mailContent; //邮件内容
private String userName; //用户名
private String passWord; //密码
private String mailCc;//抄送地址
private String[] mailBcc; //抄送给很多人
private File[] attachments; //附件
public void setAttachments(File[] attachments) {
this.attachments = attachments;
}
public File[] getAttachments() {
return attachments;
}
public String getMailCc() {
return mailCc;
}
public void setMailCc(String mailCc) {
this.mailCc = mailCc;
}
public String[] getMailBcc() {
return mailBcc;
}
public void setMailBcc(String[] mailBcc) {
this.mailBcc = mailBcc;
}
public String getMailServer() {
return mailServer;
}
public void setMailServer(String mailServer) {
this.mailServer = mailServer;
}
public String getMailSender() {
return mailSender;
}
public void setMailSender(String mailSender) {
this.mailSender = mailSender;
}
public String getMailReceiver() {
return mailReceiver;
}
public void setMailReceiver(String mailReceiver) {
this.mailReceiver = mailReceiver;
}
public String getMailSubject() {
return mailSubject;
}
public void setMailSubject(String mailSubject) {
this.mailSubject = mailSubject;
}
public String getMailContent() {
return mailContent;
}
public void setMailContent(String mailContent) {
this.mailContent = mailContent;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
3. 编写用户验证类
================MailAuthCheck.java=================
package com.obtk.test;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MailAuthCheck extends Authenticator{
private String userName;
private String passWord;
public MailAuthCheck(String userName, String passWord) {
super();
this.userName = userName;
this.passWord = passWord;
}
protected PasswordAuthentication getPasswordAuthentication() {
System.out.println("验证执行了");
//进行用户名和密码验证
return new PasswordAuthentication(userName, passWord);
}
}
4. 编写测试类
============TestMail01.java===============
package com.obtk.test;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.obtk.entitys.MailInfo;
public class TestMail01 {
public static void send(MailInfo theMail){
//设置服务参数
Properties prop=System.getProperties();
prop.put("mail.smtp.host",theMail.getMailServer());
prop.put("mail.smtp.auth", "true");//表示进行用户验证
try {
//产生session服务
MailAuthCheck authCheck=new MailAuthCheck(theMail.getUserName(), theMail.getPassWord());
Session mailSess=Session.getInstance(prop, authCheck);
Message msg=new MimeMessage(mailSess);
//设置发送者
msg.setFrom(new InternetAddress(theMail.getMailSender()));
//设置接收者
msg.setRecipient(Message.RecipientType.TO,new InternetAddress(theMail.getMailReceiver()) );
//设置标题
msg.setSubject(theMail.getMailSubject());
//设置内容
msg.setContent(theMail.getMailContent(),"text/html;charset=utf-8");
//创建发送示例
Transport trans=mailSess.getTransport("smtp");
//发送
trans.send(msg);
//关闭
trans.close();
System.out.println("发送成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MailInfo theMail=new MailInfo();
theMail.setUserName("test1");
theMail.setPassWord("123456");
theMail.setMailServer("wx.com");
theMail.setMailSender("test1@wx.com");
theMail.setMailReceiver("test3@wx.com");
theMail.setMailSubject("这是代码发送的");
theMail.setMailContent("hello,这是代码发送的内容!!!");
send(theMail);
}
}