1.基于Oracle提供的mail.jar实现发送email的方式
package com.yang.email;
import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
public class TestEmail {
//设计一个方法 创建一个邮件对象
private static Message createMessage(Session session) throws MessagingException {
//创建一个邮件对象
Message message = new MimeMessage(session);
//设置邮件的基本信息
//发送人
message.setFrom(new InternetAddress("2280539387@qq.com"));
//接收人 收件人TO 抄送人CC 密送、暗送 BBC
message.setRecipient(Message.RecipientType.TO,new InternetAddress("2280539387@qq.com"));
//设置发送邮件的时间 默认是当前时间
//message.setSentDate(new Date());
//设置邮件主题
message.setSubject("这是邮件主题");
//设置邮件正题
message.setText("这是邮件正文");
//以上所有的设置需要保存才能生效
message.saveChanges();
return message;
}
public static void main(String[] args) throws MessagingException {
//不基于spring的email
//1.导包 Oracle 的mail的包
//2.创建一个用于存放配置信息的对象 properties文件
Properties properties = new Properties();
//3.设置发送邮箱的信息
//设置邮件发送的协议--必须
properties.put("mail.transport.protocol","smtp");
//设置发送邮件的主机名--必须
properties.put("mail.smtp.host","smtp.qq.com");
//设置发送邮件的端口 默认25 还有110 143 465等
//properties.put("mail.smtp.port","25");
//设置发送邮件时 是否需要进行身份验证 默认TRUE
//properties.put("mail.smtp.auth","true");
//设置是否使用ssl安全连接 默认使用
// properties.put("mail.smtp.ssl.enable","true");
//5.创建一个session对象--可以理解为是一个socket, java和邮箱之间建立一个连接
Session session = Session.getDefaultInstance(properties);
//6.通过session对象获取一个Transport对象(可以理解为一个输出流)
Transport ts = session.getTransport();
//7.想要通过邮件发送邮件,必须得到邮件服务器的认证(该认证密码在QQ邮箱的 设置--账户--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务--点击开启服务--需要发送一条短信进行安全验证即可得到认证码)
ts.connect("2280539387@qq.com","hotobtfuxwgydiaf");
//8.写一封邮件(创建一个邮件的映射关系)
Message message = createMessage(session);
//9.发送邮件(方法中需要一个message对象和 接收人的信息)
ts.sendMessage(message,message.getAllRecipients());
//发送是流的形式 需要关闭
ts.close();
System.out.println("发送完毕1");
}
}
2.基于spring的提供的spring-context-support.jar 实现的邮件发送
spring的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com"></property>
<property name="username" value="2280539387@qq.com"></property>
<property name="password" value="hotobtfuxwgydiaf"></property>
<property name="defaultEncoding" value="UTF-8"></property>
<property name="javaMailProperties" >
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
</beans>
测试类
package com.yang.email;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
public class TestSpringEmail {
public static void main(String[] args) throws MessagingException {
//基于spring的email
BeanFactory factory = new ClassPathXmlApplicationContext("ApplicationContext.xml");
JavaMailSender sender = (JavaMailSender)factory.getBean("sender");
//利用sender创建一个邮件对象
MimeMessage message = sender.createMimeMessage();
//发送这个邮件
MimeMessageHelper helper = new MimeMessageHelper(message);
//告知helper 发给谁 发什么
helper.setFrom("2280539387@qq.com");//发送人
helper.setTo("2280539387@qq.com");//收件人
helper.setSubject("主题");//邮件主题
helper.setText("邮件正文");//邮件正文
//发送邮件
sender.send(message);
System.out.println("基于spring的邮件发送完毕");
}
}
小提示:认证码获取