利用java发送邮件,其实很方便。
1.首先下载jar包,http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html#javamail-1.4.5-oth-JPR 官方网站,没得说,下载后解压,有个mail.jar,暂且只需要它。
2.入门程序:
(1).首先需要一个继承自Authenticator的类
package com.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAutherticator extends Authenticator {
private String username = "[email protected]";
private String password = "xxx";
public MyAutherticator() {
super();
}
public MyAutherticator(String user, String pwd) {
super();
username = user;
password = pwd;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
(2).其次需要一个属性配置类
package com.mail;
import java.util.Properties;
public class MyProperties {
private static String host = "smtp.qq.com";
private static Properties properties = null;
public static Properties getPro(){
properties = System.getProperties();// 获取系统环境
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");
return properties;
}
}
(3).需要一个邮件发送类
package com.mail;
import java.util.Date;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MyMail {
private String mail_head_name = "this is head of this mail";
private String mail_head_value = "this is head of this mail";
private String mail_to = "[email protected]";
private String mail_from = "[email protected]";
private String mail_subject = "this is the subject of this test mail";
private String mail_body = "this is mail_body of this test mail";
private String personalName = "我的邮件";
public MimeMessage getMail(Session session)throws Exception{
MimeMessage message = new MimeMessage(session); //邮件发送对象
message.setContent("Hello", "text/plain");
message.setSubject(mail_subject); // 设置邮件主题
message.setText(mail_body); // 设置邮件内容
message.setHeader(mail_head_name, mail_head_value); // 设置邮件标题
message.setSentDate(new Date()); // 设置邮件发送时期
Address address = new InternetAddress(mail_from, personalName);
message.setFrom(address); // 设置邮件发送者的地址
Address toaddress = new InternetAddress(mail_to);
message.addRecipient(Message.RecipientType.TO, toaddress); // 设置邮件接收者的地址
return message;
}
}
(4).万事俱备,开始执行
package com.mail;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
public class SendMail {
public void sendMail() throws SendFailedException {
try {
Authenticator auth = new MyAutherticator(); //1--进行邮件服务用户认证
Properties pros = MyProperties.getPro(); //2--属性配置
Session session = Session.getDefaultInstance(pros, auth);//3--设置session,和邮件服务器进行通讯
MyMail mail = new MyMail();
MimeMessage message = mail.getMail(session); //4--设置一个邮件
Transport.send(message); //5--发送
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SendMail mail = new SendMail();
try {
mail.sendMail();
} catch (Exception e) {
System.out.println(e);
}
}
}