用java发送邮件(qq邮箱为例子)

一 获取邮箱的授权码

1、 设置—>账户—>开启服务:POP3/SMTP服务

在这里插入图片描述
在这里插入图片描述

2、 maven-jar包依赖

<!-- 邮件-->
<dependency>
   <groupId>javax.mail</groupId>
   <artifactId>mail</artifactId>
   <version>1.4.7</version>
</dependency>

3 创建spring-msg.xml、email.properties(注意:多个需要使用propertyConfigurer,并开启扫描包:邮件工具类所在的包<context:component-scan base-package=“cn.itsource.utils” />)

  • spring-msg.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" xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
    <task:executor id="mytask" pool-size="10"/>
    <task:annotation-driven executor="mytask"/>
    <bean id="emailSend" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${email.host}"></property>
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="username" value="${email.username}"></property>
        <property name="password" value="${email.token}"></property>
        <property name="protocol" value="${email.protocol}"></property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.timeout">25000</prop>
            </props>
        </property>
    </bean>
    <bean class="org.springframework.web.client.RestTemplate"></bean>
</beans>
  • email.properties
email.host = smtp.qq.com
email.protocol = smtp
email.username = 自己的邮箱
email.token =授权码

然后是编写工具类,需要发送邮件可以直接调用,注意,需要将工具类交由spring管理

  • 简单邮件发送
@Component
public class DWEmailUtil {
    @Autowired
    JavaMailSenderImpl javaMailSender;//spring提供的邮件发送的
    @Value("${email.username}")
    String username;


    //简单邮件
    @Async
    public  void sendSimplEmail(String sendUser,String title,String count){
//简单文本发送  simpleMailMessage simpleMessage
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom(username);//        发送人
        mailMessage.setTo(sendUser);//          收件人
        mailMessage.setSubject(title);//               标题
        mailMessage.setText(count);            //            内容
        javaMailSender.send(mailMessage);
        System.err.println("发送成功");
    	}
    }

-html格式的邮件

@Component
public class DWEmailUtil {
    @Autowired
    JavaMailSenderImpl javaMailSender;//spring提供的邮件发送的
    @Value("${email.username}")
    String username;
     //html格式
    @Async
    public  void sendHtml(String sendUser,String title,String html) throws  Exception{
        //MimeMessage 媒体对象   获取媒体对象api
        MimeMessage mimeMsg = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMsg, true);
            helper.setTo(sendUser);  //收件人
            helper.setFrom(username);//发送人
            helper.setSubject(title);//主题
            helper.setText(html, true);//内容
            javaMailSender.send(mimeMsg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值