spring mail 邮件发送demo

首先配置号邮件服务器(我用的是126邮箱),获取密钥:

进入下图的【邮箱中心】->点击右侧的齿轮按钮

spring mail 邮件发送demo_第1张图片

接着,开启 下图位置 的 POP3/SMTP(我当时点击开启时,需要手机扫码认证下)

spring mail 邮件发送demo_第2张图片

最后成功后,会给你弹出个授权码窗口,里面显示授权码。这个要保留,就是后面的密码。

同时,本页面底部,又服务器地址,记得备份下,后面会用:

spring mail 邮件发送demo_第3张图片

后面就是使用 spring mail 库了。很方便的

maven 引入库:

 
        
            org.springframework.boot
            spring-boot-starter-mail
        

给出自己整理的代码示例:

package com.example.demo;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

class SpringMailTests {


    public static void main(String[] args) throws MessagingException {

        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost("smtp.126.com");
        //sender.setPort(994);
        sender.setUsername("[email protected]");
        sender.setPassword("GQHFSOBQDRKKKTIE");
        sender.setDefaultEncoding("UTF-8");

//        SimpleMailMessage message = sendText(sender);

//        MimeMessage message = sendHtml(sender);

//        MimeMessage message = sendEmbeddedResource(sender);

        MimeMessage message = sendAttachment(sender);

        // 发送
        sender.send(message);

        System.out.println("success");

    }

    /**
     * 发送文本
     *
     * @param sender
     */
    public static SimpleMailMessage sendText(JavaMailSenderImpl sender) {


        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("[email protected]");
        message.setTo("[email protected]", "[email protected]");
        message.setSubject("126邮件发送测试222");
        message.setText("我是个测试文本222");
        // 抄送
        message.setCc("[email protected]");

        return message;
    }

    /**
     * 发送HTML邮件
     *
     * @param sender
     * @throws MessagingException
     */
    public static MimeMessage sendHtml(JavaMailSenderImpl sender) throws MessagingException {

        MimeMessage message = sender.createMimeMessage();
        // 简化对mimeMessage的封装
        MimeMessageHelper helper = new MimeMessageHelper(message, false, "UTF-8");
        helper.setFrom("[email protected]");
        helper.setCc("[email protected]");
        helper.setTo(new String[]{"[email protected]", "[email protected]"});
        helper.setSubject("HTML邮件");
        helper.setText("

hello,world!

", true); // return message; } /** * 发送内嵌资源的邮件 * * @param sender * @throws MessagingException */ public static MimeMessage sendEmbeddedResource(JavaMailSenderImpl sender) throws MessagingException { MimeMessage message = sender.createMimeMessage(); // 简化对mimeMessage的封装 内嵌资源要将multipart设置为true MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); helper.setFrom("[email protected]"); // helper.setCc("[email protected]"); helper.setTo(new String[]{"[email protected]", "[email protected]"}); helper.setSubject("发送内嵌资源的邮件"); // 内嵌文件的id已特定的标志引用 格式为cid:<内嵌文件id> // helper.setText("hello",true); helper.setText("hello
", true); FileSystemResource resource = new FileSystemResource("C:/Users/we749/Documents/workspace/onestophealthcheck/project-server/src/main\\resources\\static\\image\\bg1.png"); FileSystemResource resource2 = new FileSystemResource("C:\\Users\\we749\\Pictures\\bg1.png"); // // // 使用addInline 方法将文件内嵌到邮件中 helper.addInline("id1", resource); helper.addInline("id2", resource2); return message; } /** * @param sender * @return * @throws MessagingException */ public static MimeMessage sendAttachment(JavaMailSenderImpl sender) throws MessagingException { MimeMessage message = sender.createMimeMessage(); // 简化对mimeMessage的封装 内嵌资源要将multipart设置为true MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); helper.setFrom("[email protected]"); // helper.setCc("[email protected]"); helper.setTo(new String[]{"[email protected]", "[email protected]"}); helper.setSubject("发送带附件的邮件"); // 内嵌文件的id已特定的标志引用 格式为cid:<内嵌文件id> helper.setText("发送带附件的邮件", true); FileSystemResource resource = new FileSystemResource("C:/Users/we749/Documents/workspace/onestophealthcheck/project-server/src/main\\resources\\static\\image\\bg1.png"); // 使用addAttachment 方法 添加附件 helper.addAttachment("tiger.jpeg", resource); return message; } }

你可能感兴趣的:(spring,java,数据库)