java之mail发送

Java邮箱发送配置

  一、邮箱的应用在实际的Java开发过程中,也是非常常见的。我这里就是写了一个简单的邮箱发送功能。

  二、邮箱的基本配置,使用的是JavaMailSender的提供的方式来实现邮件的发送

  1)qq邮箱的配置(说明一点目前qq邮箱的配置方式都是采用ssl的方式来实现的,非ssl的方式没有测试成功)

package com.troy.jpa.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import java.util.Properties;

@Configuration
public class MailConfiguration {

    @Bean
    public JavaMailSender javaMailSender() {
        //设置JavaMail的基本数据
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        //host官方查询
        javaMailSender.setHost("smtp.qq.com");
        //端口465ssl
        javaMailSender.setPort(465);
        //设置账户,密码
        javaMailSender.setUsername("409546297@qq.com");
        javaMailSender.setPassword("密码");
        //认证数据配置,ssl方式需要加入认证方式
        Properties properties = new Properties();
        properties.setProperty("mail.host", "smtp.qq.com");
        properties.setProperty("mail.transport.protocol", "smtp");
        properties.setProperty("mail.smtp.auth", "true");
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        properties.setProperty("mail.smtp.port", "465");
        properties.setProperty("mail.smtp.socketFactory.port", "465");
        javaMailSender.setJavaMailProperties(properties);
        return javaMailSender;
    }
}

 

  注意:这里的密码不是我们一般登录的密码,而是授权码

  2)163邮箱有2中配置方式

  a、ssl的的连接方式

package com.troy.jpa.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import java.util.Properties;

@Configuration
public class MailConfiguration {

    @Bean
    public JavaMailSender javaMailSender() {
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.163.com");
        javaMailSender.setPort(465);
        javaMailSender.setUsername("账号");
        javaMailSender.setPassword("密码");
        Properties properties = new Properties();
        properties.setProperty("mail.host", "smtp.163.com");
        properties.setProperty("mail.transport.protocol", "smtp");
        properties.setProperty("mail.smtp.auth", "true");
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        properties.setProperty("mail.smtp.port", "465");
        properties.setProperty("mail.smtp.socketFactory.port", "465");
        javaMailSender.setJavaMailProperties(properties);
        return javaMailSender;
    }
}

  b、非ssl的连接方式

package com.troy.jpa.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

@Configuration
public class MailConfiguration {

    @Bean
    public JavaMailSender javaMailSender() {
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.163.com");
        javaMailSender.setPort(25);
        javaMailSender.setUsername("账号");
        javaMailSender.setPassword("密码");
        return javaMailSender;
    }
}

  3)这个是采用注解的方式,自己也可以采用xml的配置方式,自己随意

  4)应用,邮件的发送

package com.troy.jpa.util;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

public class MailUtil {

    public static void main(String[] args) {
        sendMail("收件人邮箱","test","test");
    }

    public static void sendMail(String mail, String title, String text) {
        //加载容器
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-mvc.xml");
        //获取bean
        JavaMailSender javaMailSender = (JavaMailSender) context.getBean("javaMailSender");
        //建立邮箱模板
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        //设置发送人的账号
        mailMessage.setFrom("发送人账号(和登录的账号一样)");
        //设置接收人的账号
        mailMessage.setTo(mail);
        //设置主题
        mailMessage.setSubject(title);
        //设置内容
        mailMessage.setText(text);
        //发送邮件
        javaMailSender.send(mailMessage);
    }
}

 

转载于:https://www.cnblogs.com/ll409546297/p/8205272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值