使用Javamail发送邮件,必需的jar包(请下载javamail的源文件,官方下载页:http://www.oracle.com/technetwork/java/javamail/index-138643.html):
mailapi.jar。定义了收发邮件所使用到的接口API;
smtp.jar。包含了发送邮件使用到的类;
pop3.jar。包含了收邮件使用到的类;
我们通常发送邮件使用的协议是smtp协议,接受邮件使用的协议是pop3协议。或者,我们直接将mail.jar加入到工程,这个jar包里边包含了java收发邮件所有的接口和类。
常用的类:
javax.mail.Session; -------->保存连接服务器所需要的信息;
javax.mail.Message; -------->邮件体,保存邮件的内容;
javax.mail.Transport; -------->发送邮件的载体
javax.mail.internet.InternetAddress; -------->邮件的地址信息
发送邮件
下边,我先列出使用Java发送邮件的最简单的一个小测试示例:
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
*
* QQ(mail.qq.com):POP3服务器(端口995)SMTP服务器(端口465或587)。
*
*/
public class Demo1 {
/**
* @param args
* @throws MessagingException
*/
public static void main(String[] args) throws MessagingException {
String sendUserName = "wangxiangpan@126.com";
String sendPassword = "pwd";
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");//服务器需要认证
properties.setProperty("mail.transport.protocol", "smtp");//声明发送邮件使用的端口
Session session = Session.getInstance(properties);
session.setDebug(true);//同意在当前线程的控制台打印与服务器对话信息
Message message = new MimeMessage(session);//构建发送的信息
message.setText("你好,我是Champion.Wong!");//信息内容
message.setFrom(new InternetAddress("wangxiangpan@126.com"));//发件人
Transport transport = session.getTransport();
transport.connect("smtp.126.com", 25, sendUserName, sendPassword);//连接发件人使用发件的服务器
transport.sendMessage(message, new Address[]{new InternetAddres