zoukankan      html  css  js  c++  java
  • 使用 Spring API 实现邮件发送 (乐字节java,乐字节架构)

    详细Spring如何进行邮件发送
    本文由乐字节Java架构课程独家赞助播出

    环境准备

    创建 Maven 项目,在 pom.xml 文件中添加依赖

    <!-- spring核心 jar 依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.4.RELEASE</version>
    </dependency>
    <!--spring 上下文环境 支持-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>5.2.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.2.4.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!-- Java Mail坐标依赖 -->
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>
    </dependency>
    

    配置邮件发送 bean

    在 spring.xml 配置文件中设置邮件发送对应的bean标签

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           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">
    
        <!-- 开启自动化扫描  -->
        <context:component-scan base-package="com.xxxx"/>
    
        <!-- 邮件发送器(提供了邮件发送接口、透明创建Java Mail的MimeMessage、及邮件发送的配置) -->
        <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="smtp.163.com" />
            <property name="port" value="25" />
            <property name="defaultEncoding" value="utf-8"></property>
            <property name="username" value="用户名"></property>
            <property name="password" value="密码"></property>
        </bean>
    
        <!-- 普通文本邮件对象 -->
        <bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
            <property name="from" value="发件人的邮箱地址" />
            <property name="subject" value="spring_mail" />
        </bean>
    
    </beans>
    
    

    定义接口与实现类

    定义接口

    package com.xxxx.springMail;
    
    /**
     * 定义接口
     */
    public interface OrderManager {
        void placeOrder();
    }
    

    定义实现类

    package com.xxxx.springMail;
    
    import org.springframework.mail.MailException;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.stereotype.Service;
    import javax.annotation.Resource;
    
    @Service
    public class SimpleOrderManager implements OrderManager {
    
        @Resource
        private JavaMailSenderImpl mailSender;
        @Resource
        private SimpleMailMessage templateMessage;
    
        @Override
        public void placeOrder() {
            // 获取邮件对象
            SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
            // 设置邮件收件人的邮箱地址
            msg.setTo("收件人的邮箱地址");
            // 设置邮件内容
            msg.setText("Hello Spring Mail");
            try{
                // 发送邮件
                this.mailSender.send(msg);
            } catch (MailException ex) {
                System.err.println(ex.getMessage());
            }
        }
    }
    

    邮件发送测试

    /**
      *  发送邮件
      * @param args
      */
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");
        SimpleOrderManager simpleOrderManager = 
            (SimpleOrderManager) ac.getBean("simpleOrderManager");
        simpleOrderManager.placeOrder();
    }
    

    发送附件

    /**
      *  发送包含附件的邮件
      * @param args
      * @throws MessagingException
      */
    public static void main(String[] args) throws MessagingException {
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
        JavaMailSender mailSender= (JavaMailSender) ac.getBean("mailSender");
        MimeMessage message= mailSender.createMimeMessage();
        message.setSubject("spring_mail"); // 邮件主题
        // 创建带有附件的消息帮组类
        MimeMessageHelper helper = new MimeMessageHelper(message,true,"utf-8");
        helper.setTo(new InternetAddress("收件人的邮箱地址"));//设置接收人
        helper.setText("Thank you for ordering!"); // 邮件内容
        helper.setFrom("发件人的邮箱地址"); // 发件人
        // 设置附件
        File file = new File("C:\work\邮件附件.txt");
        // 添加附件
        helper.addAttachment(file.getName(), file);
        // 发送邮件
        mailSender.send(message);
    }
    
  • 相关阅读:
    20181020遭遇战
    二分图最大分配
    2019.11.11 洛谷月赛t3
    2019.10.29 CSP%您赛第四场t2
    2019.10.28 CSP%您赛第四场t3
    2019.10.26 CSP%您赛第三场
    2019.10.24 CSP%你赛第二场d1t3
    0080-简单的排序
    0079-简单的循环
    0078-求最大因子
  • 原文地址:https://www.cnblogs.com/lezijie/p/13034432.html
Copyright © 2011-2022 走看看