原生方式
package test;import javax.mail.*;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;public class TestSendEmail {//设计一个方法 创建一个邮件对象//参数---session//返回值---一个邮件对象(映射) MimeMessageprivate static Message createMessage(Session session) throws MessagingException {//自己创建一个邮件对象Message message=new MimeMessage(session);//设置邮件的基本信息//设置发送人message.setFrom(new InternetAddress("1713599635@qq.com"));//设置接收人 收件类型:收件人TO 抄送人CC 密送/暗送BCCmessage.setRecipient(Message.RecipientType.TO,new InternetAddress("1713599635@qq.com"));//设置邮件发送的时间 message.setSendDate(Date对象);//设置发送主题message.setSubject("这是邮件的主题");//设置发送邮件正文message.setText("我是邮件的正文");//以上所有的设置需要保存才能生效message.saveChanges();return message;}public static void main(String[] args) throws MessagingException {//1.下载一个mail.jar//2.导包//3.创建一个用于存放配置信息的对象,Properties类Properties properties=new Properties();//4.设置发送邮件需要的一些信息//设置发送邮件的协议 smtpproperties.put("mail.transport.protocol","smtp");//必须//设置发送邮件的主机名properties.put("mail.smtp.host","smtp.qq.com");//必须/*设置发送邮件的端口,默认25properties.put("mail.smtp.port","xxx");设置发送邮件时是否需要进行身份认证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 transport=session.getTransport();//7.通过邮箱发送邮件,必须得到邮件服务器的认可(使用哪个邮箱发送,授权码)transport.connect("1713599635@qq.com","qoqjjdmlyagyecfc");//8.发送一封邮件(创建一个邮件的映射关系) File对象 Class对象 映射//创建邮件对象比较复杂,需要好多信息,单独写一个方法Message message=createMessage(session);//9.发送邮件(需要一个message对象,知道message对象中的那些接收人)transport.sendMessage(message,message.getAllRecipients());//10.关闭通道transport.close();System.out.println("发送完毕");}}
基于Spring的Email
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xsi:schemaLocation=" http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"><bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="smtp.qq.com"></property><property name="username" value="1713599635@qq.com"></property><property name="password" value="qoqjjdmlyagyecfc"></property><property name="defaultEncoding" value="UTF-8"></property><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop></props></property></bean></beans>
SpringSendEmail
package test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
public class SpringSendEmail {
public static void main(String[] args) throws MessagingException {
BeanFactory factory = new ClassPathXmlApplicationContext("ApplicationContext.xml");
JavaMailSender sender = (JavaMailSender) factory.getBean("sender");
//1.利用sender创建一个邮件对象
MimeMessage message= sender.createMimeMessage();
//2.发送邮件 找小弟帮忙
MimeMessageHelper helper=new MimeMessageHelper(message);
//3.需要告知helper 谁发 发给谁 发什么
helper.setFrom("1713599635@qq.com");
helper.setTo("1713599635@qq.com");
helper.setSubject("邮件主题");
helper.setText("正文内容");
//4.直接发送
sender.send(message);
System.out.println("发送成功");
}
}
