java集成邮箱

依赖

//maven依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

java集成邮箱工具类

package cn.byang.message;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.List;
import java.util.Properties;

public class MailUtils {

    private String sendFrom ="xxx" ;
    private JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
    /**
     * 工具方法:发送SSL邮件
     * @param subject  邮件标题
     * @param text 邮件内容 支持html标签
     * @param to 收件人
     * @param files 附件文件对象集合
     */
    @Async("taskExecutor")
    public void sendSSLMail(String subject, String text, String to, List<File> files){
        try {
            Properties properties = System.getProperties();
            //使用465端口和25端口就只有配置文件不一样
            properties.put("mail.smtp.socketFactory.class", "cn.qpyl.message.MailSocketFactory");
            properties.put("mail.smtp.port", "465");
            properties.put("mail.smtp.socketFactory.port", "465");
            properties.put("mail.smtp.host", "xxx");
            properties.put("mail.smtp.auth", "true");
            properties.put("mail.user", "xxx");
            properties.put("mail.password", "xxx");
            //smtp邮箱需要验证
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    String userName = properties.getProperty("mail.user");
                    String password = properties.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            Session session = Session.getDefaultInstance(properties, authenticator);
            javaMailSender.setJavaMailProperties(properties);
            javaMailSender.setSession(session);
            //创建复杂邮件对象
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            //发送复杂邮件的工具类
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
            helper.setFrom(sendFrom);
            helper.setSubject(subject);
            helper.setText(text,true);
            //添加附件
            if(files != null && files.size() > 0){
                files.forEach(file -> {
                    try {
                        helper.addAttachment(file.getName(), file);
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                });
            }
            //收件人
            helper.setTo(to);
            javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    /**
     * 工具方法:发送复杂邮件
     * @param subject  邮件标题
     * @param text 邮件内容 支持html标签
     * @param to 收件人
     * @param files 附件文件对象集合
     */
    @Async("taskExecutor")
    public void sendComplexMail(String subject, String text, String to, List<File> files) {
        try {
            javaMailSender.setHost("xxx");
            javaMailSender.setUsername("xxx");
            javaMailSender.setPassword("xxx");
            //创建复杂邮件对象
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            //发送复杂邮件的工具类
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
            helper.setFrom(sendFrom);
            helper.setSubject(subject);
            helper.setText(text,true);
            //添加附件
            if(files != null && files.size() > 0){
                files.forEach(file -> {
                    try {
                        helper.addAttachment(file.getName(), file);
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                });
            }
            //收件人
            helper.setTo(to);
            javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值