javamail概述

JavaMail

是java提供的一组API,用来发送和接收邮件!

———————

邮件相关的协议

smtp 25 –> 简单的邮件传输协议
pop3 110 –> 邮局协议第3版

———————

=================================

JavaMail

1. 导包!
* mail.jar
* actvition.jar

—————-

核心类:
1. Session
* 如果你得到了它,表示已经与服务器连接上了,与Connection的作用相似!

得到Session,需要使用Session.getInstance(Properties, Authenticator);
Properites props = new Properties();
props.setProperty(“mail.host”, “smtp.163.com”);
props.setProperty(“mail.smtp.auth”, “true”);

Authenticator auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(“itcast_cxf”, “itcast”);
}
};
Session session = Session.getInstance(props, auth);

2. MimeMessage
* 它表示一个邮件对象,你可以调用它的setFrom(),设置发件人、设置收件人、设置主题、设置正文!

3. TransPort
* 它只有一个功能,发邮件!

——————————————————

第一步:获得Session

Session session = Session.getInstance(Properties prop, Authenticator auth);

其中prop需要指定两个键值,一个是指定服务器主机名,另一个是指定是否需要认证!我们当然需要认证!

Properties prop = new Properties();

prop.setProperty(“mail.host”, “smtp.163.com”);//设置服务器主机名

prop.setProperty(“mail.smtp.auth”, “true”);//设置需要认证

其中Authenticator是一个接口表示认证器,即校验客户端的身份。我们需要自己来实现这个接口,实现这个接口需要使用账户和密码。

Authenticator auth = new Authenticator() {

    public PasswordAuthentication getPasswordAuthentication () {

        new PasswordAuthentication(“itcast_cxf”, “itcast”);//用户名和密码

}

};

通过上面的准备,现在可以获取得Session对象了:

Session session = Session.getInstance(prop, auth);

第二步:创建MimeMessage对象

创建MimeMessage需要使用Session对象来创建:

MimeMessage msg = new MimeMessage(session);

然后需要设置发信人地址、收信人地址、主题,以及邮件正文。

msg.setFrom(new InternetAddress(“itcast_cxf@163.com”));//设置发信人

msg.addRecipients(RecipientType.TO, “itcast_cxf@qq.com,itcast_cxf@sina.com”);//设置多个收信人

msg.addRecipients(RecipientType.CC, “itcast_cxf@sohu.com,itcast_cxf@126.com”);//设置多个抄送

msg.addRecipients(RecipientType.BCC, ”itcast_cxf@hotmail.com”);//设置暗送

msg.setSubject(“这是一封测试邮件”);//设置主题(标题)

msg.setContent(“当然是hello world!”, “text/plain;charset=utf-8”);//设置正文

第三步:发送邮件

Transport.send(msg);//发送邮件

 —————————————————————

package javaMail;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.junit.Test;

public class JavaMail {
@Test
public void fun1() throws AddressException, MessagingException{
//得到session
Properties prop = new Properties();
prop.setProperty(“mail.host”, “smtp.163.com”);//设置服务器主机名
prop.setProperty(“mail.smtp.auth”, “true”);//设置需要认证
Authenticator auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(“danyuzhu11@163.com”, “DANYU1122”);
}
};
Session session = Session.getInstance(prop, auth);

//创建MimeMessage
MimeMessage msg=new MimeMessage(session);
msg.setFrom(new InternetAddress(“danyuzhu11@163.com”));//设置发件人
msg.setRecipients(RecipientType.TO, “494281423@qq.com”);//设置收件人
msg.setRecipients(RecipientType.CC, “494281423@qq.com”);//设置抄送
msg.setRecipients(RecipientType.BCC, “494281423@qq.com”);//设置暗送人
//设置正文
msg.setSubject(“测试邮件”);
msg.setContent(“一峰测试邮件”,”text/html;charset=utf-8″);
//发送邮件
Transport.send(msg);

}

}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注