首页 > 其他 > 详细

邮件发送

时间:2020-04-08 12:35:35      阅读:65      评论:0      收藏:0      [点我收藏+]

1.邮箱授权,获取授权码

技术分享图片

 

技术分享图片

代码展示:

pom.xml

  <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency> 
MailSenderParams.java
package top.xzhand.mail;

import lombok.Data;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: xiazhong
 * @Date: 2019/6/22
 */
@Data
public class MailSenderParams {
    private String mailTo;//收件人
    private String title;//邮件标题
    private String content;//邮件内容
    private List<File> attachments=new ArrayList<>();//附件
    private String templateFile;//模板文件
    private String template;
    /**
     * 模板的参数集
     */
    private Map<String, Object> templateModels;


}
MailSender.java
package top.xzhand.mail;

import freemarker.template.Template;
import org.apache.log4j.Logger;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
import java.util.List;
import java.util.Properties;

;


/**
 * @Description: 邮件发送服务
 * @Author: xiazhong
 * @Date: 2019/6/22
 */
public class MailSender {
    private Logger logger= Logger.getLogger(this.getClass());
    private JavaMailSender javaMailSender;

    private FreeMarkerConfigurer freeMarkerConfigurer;

    private String name;

    private String from;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public Logger getLogger() {
        return logger;
    }

    public void setLogger(Logger logger) {
        this.logger = logger;
    }

    public JavaMailSender getJavaMailSender() {
        return javaMailSender;
    }

    public void setJavaMailSender(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }

    public FreeMarkerConfigurer getFreeMarkerConfigurer() {
        return freeMarkerConfigurer;
    }

    public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
        this.freeMarkerConfigurer = freeMarkerConfigurer;
    }

    public MailSender(){
        logger.info("初始化邮件组件");
    }

    /**
     * 发送邮件
     */
    public void sendSimpleMail(MailSenderParams params){
        MimeMessage message=null;
        try{
            message=javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message,true);
            helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
            helper.setTo(params.getMailTo());
            helper.setSubject(params.getTitle());
            helper.setText(params.getContent(), false);
        }catch (Exception e){
            throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
        }
        javaMailSender.send(message);
    }

    public void sendHtmlMail(MailSenderParams params){
        MimeMessage message=null;
        try{
            message=javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message,true);
            //helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
            helper.setTo(params.getMailTo());
            helper.setSubject(params.getTitle());
            helper.setText(params.getContent(), true);
        }catch (Exception e){
            throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
        }
        javaMailSender.send(message);
    }

    /**
     * 发送带附件的邮件
     * @param params
     */
    public void sendAttachmentMail(MailSenderParams params){
        MimeMessage message=null;
        try{
            message=javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message,true);
            helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
            helper.setTo(params.getMailTo());
            helper.setSubject(params.getTitle());
            helper.setText(params.getContent(), true);
        }catch (Exception e){
            throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
        }
        javaMailSender.send(message);
    }
    /**
     * 发送模板邮件
     */
    public void sendTemplateMail(MailSenderParams params) {
        MimeMessage message = null;
        try {
            message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(new InternetAddress(this.getFrom(), MimeUtility.encodeText(this.name,"UTF-8", "B")));
            helper.setTo(params.getMailTo());
            helper.setSubject(params.getTitle());

            this.addAttachment(helper,params);

            Template template = freeMarkerConfigurer.getConfiguration().getTemplate(params.getTemplateFile());
            String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, params.getTemplateModels());
            helper.setText(html, true);
        } catch (Exception e) {
            throw new RuntimeException("发送邮件异常! from: " + name + "! to: " + params.getMailTo());
        }
        javaMailSender.send(message);
    }
    /**
     * 添加附件
     * @param helper
     * @param params
     * @throws MessagingException
     */
    private void addAttachment(MimeMessageHelper helper, MailSenderParams params) throws MessagingException {
        if(params.getAttachments() != null){
            List<File> attachments = params.getAttachments();
            for (File file:attachments){
                FileSystemResource attachment = new FileSystemResource(file);
                helper.addAttachment(file.getName(), file);
            }
        }
    }

//    public static void main(String[] args) {
//
//        JavaMailSenderImpl js=new JavaMailSenderImpl();
//        js.setHost("smtp.qq.com");
//        js.setUsername("75284350@qq.com");
//        js.setPassword("*****");
//        Properties props = new Properties();
//        props.put("mail.smtp.auth", true);
//        props.put("mail.smtp.ssl.enable", true);
//        props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
//        props.put("mail.smtp.timeout", 25000);
//        js.setJavaMailProperties(props);
//        MimeMessage message = null;
//        try {
//            message = js.createMimeMessage();
//            MimeMessageHelper helper = new MimeMessageHelper(message, true);
//            // helper.setFrom(new InternetAddress(this.getFrom(), MimeUtility.encodeText(this.name,"UTF-8", "B")));
//            helper.setFrom("75284350@qq.com");
//            helper.setTo("98781255@qq.com");
//            helper.setSubject("测试");
//            helper.setText("测试内容");
//            //addAttachmentStatic(helper,params);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        js.send(message);
//    }







}
MailTest.java
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import top.xzhand.mail.MailSender;
import top.xzhand.mail.MailSenderParams;


public class MailTest {
    public static void main(String[] args) {
        MailSender mailSender=new MailSender();
        JavaMailSenderImpl js=new JavaMailSenderImpl();
        js.setHost("smtp.qq.com");
        js.setUsername("7528435@qq.com");
        js.setPassword("****");
        mailSender.setJavaMailSender(js);
        mailSender.setFrom("7528435@qq.com");
        mailSender.setName("7528435");
        MailSenderParams params=new MailSenderParams();
        params.setMailTo("9878125@qq.com");
        params.setTitle("测试邮件");
        params.setContent("测试邮件发送");
        mailSender.sendSimpleMail(params);

    }
}

  

 

邮件发送

原文:https://www.cnblogs.com/notmore/p/12658986.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!