美文网首页
springEmail

springEmail

作者: _FireFly_ | 来源:发表于2020-11-27 20:45 被阅读0次

需要的jar包

ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.qq.com"></property>
        <property name="username" value="370917198@qq.com"></property>
        <property name="password" value="sahavtowpilnbifc"></property>
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
            </props>
        </property>
    </bean>

</beans>

SpringSendEmail

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 {
        //1.跟SpringBeanFactory要一个对象
        BeanFactory factory = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        JavaMailSender sender = (JavaMailSender)factory.getBean("sender");//JavaMailSenderImpl
        //2.利用这个sender创建一个邮件对象
        MimeMessage message = sender.createMimeMessage();
        //3.发送这个邮件  找小弟帮忙
        MimeMessageHelper helper = new MimeMessageHelper(message);//是刚才那个Session和Transport的合体
        //4.需要告知helper 发给谁 发什么
        helper.setFrom("370917198@qq.com");//设置发送的地址
        helper.setTo("370917198@qq.com");//设置收件人地址
        helper.setSubject("基于Spring的新主题");
        helper.setText("基于Spring的新内容");//验证的地址(新请求 认证成功)
        //5.直接发送消息
        sender.send(message);
        System.out.println("基于Spring发送成功");
    }
}

TestSendEmail

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;
import java.util.Properties;
public class TestSendEmail {

    //设计一个方法 创建一个邮件对象
    //  参数? 一个session
    //  返回值? 一个邮件对象(映射) MimeMessage
    private static Message createMessage(Session session) throws MessagingException {
        //自己创建一个邮件对象
        Message message = new MimeMessage(session);
        //设置邮件的基本信息
        //设置发送人
        message.setFrom(new InternetAddress("370917198@qq.com"));
        //设置接收人  recipient容器 收纳     类型 收件人TO 抄送人CC 密送/暗送 BCC
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("370917198@qq.com"));
        //设置发送邮件的时间
//        message.setSentDate(new Date());
        //设置发送主题
        message.setSubject("这是邮件的主题");
        //设置发送邮件正文
        message.setText("我是邮件的正文");

        //以上所有的设置需要保存才能生效
        message.saveChanges();
        //将message对象返回
        return message;
    }

    public static void main(String[] args) throws MessagingException {
        //1.下载一个mail.jar
        //2.导包
        //3.创建一个用于存放配置信息的对象,Properties类型
        Properties prop = new Properties();
        //4.设置发送邮件需要的一些信息
        //设置发送邮件的协议  smtp
        prop.put("mail.transport.protocol","smtp");//必须
        //设置发送邮件的主机名
        prop.put("mail.smtp.host","smtp.qq.com");//必须
        //设置发送邮件的端口 默认25,还有110,143,465
//        prop.put("mail.smtp.port","xxx");
        //设置发送邮件时 是否需要进行身份认证
//        prop.put("mail.smtp.auth","true");
        //设置是否使用ssl安全连接 默认使用
//        prop.put("mail.smtp.ssl.enable","true");
        //5.创建一个Session对象(可以理解为是一个Socket,Java和邮箱之间建立一个连接)
        Session session = Session.getDefaultInstance(prop);
        //6.通过session对象获取一个Transport对象(可以理解为是一个输出流)
        Transport ts = session.getTransport();
        //7.想要通过邮箱发送邮件,必须得到邮件服务器的认证
        ts.connect("370917198@qq.com","sahavtowpilnbifc");
        //8.发送是一封邮件(创建一个邮件的映射关系)     File对象 Class对象  映射
        //  创建邮件对象本身比较复杂 需要好多信息 单独写一个方法
        Message message = createMessage(session);
        //9.发送邮件(需要一个message对象,知道message对象中的那些接收人)
        ts.sendMessage(message,message.getAllRecipients());
        //10.关闭通道
        ts.close();
        System.out.println("发送完毕");
    }
}

相关文章

  • springEmail

    需要的jar包 ApplicationContext.xml SpringSendEmail TestSendEmail

网友评论

      本文标题:springEmail

      本文链接:https://www.haomeiwen.com/subject/jljmiktx.html