Springboot----发送QQ邮箱

实体类:

public class Mail {
	
	/** 发送者*/
	private String sender;
	
	/** 接受者  */
	private String receiver;
	
	/** 主题 */
	private String subject;
	
	/** 发送 消息*/
	private String text;

	public String getSender() {
		return sender;
	}

	public void setSender(String sender) {
		this.sender = sender;
	}

	public String getReceiver() {
		return receiver;
	}

	public void setReceiver(String receiver) {
		this.receiver = receiver;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	/** 
	 * 
	 */
	@Override
	public String toString() {
		return "Mail [sender=" + sender + ", receiver=" + receiver + ", subject=" + subject + ", text=" + text + "]";
	}
}

控制层:

@RestController
@RequestMapping("/api/mail")
public class MailController {
	private static Logger LOG=LoggerFactory.getLogger(MailController.class);
	
	@Autowired
	private JavaMailSender mailSender;
     
	@Autowired
    private TemplateEngine templateEngine;
	/*
	 * 发送普通邮件
	 */
    @PostMapping("/sendMail")
    public String sendMail(@RequestBody Mail mail) {
    	SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom(mail.getSender());
		message.setTo(mail.getReceiver());
		message.setSubject(mail.getSubject());
		message.setText(mail.getText());
		mailSender.send(message);
		LOG.info("发送成功!");
        return "发送成功!";
    }
    
    
    /*
     *  发送附件
     */
    @PostMapping("/sendAttachments")
    public String sendAttachmentsMail(@RequestBody Mail mail) throws MessagingException  {

    	MimeMessage mimeMessage = mailSender.createMimeMessage();
    	MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
    	helper.setFrom(mail.getSender());
    	helper.setTo(mail.getReceiver());
    	helper.setSubject(mail.getSubject());
    	helper.setText(mail.getText());
    	FileSystemResource file = new FileSystemResource(new File("1.png"));
    	helper.addAttachment("附件.jpg", file);
    	mailSender.send(mimeMessage);
		return "发送成功!";

    }
    
    /*
     * 发送静态资源
     */
    @PostMapping("/sendInlineMail")
    public String sendInlineMail(@RequestBody Mail mail) throws Exception {

    	MimeMessage mimeMessage = mailSender.createMimeMessage();

    	MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
    	helper.setFrom(mail.getSender());
    	helper.setTo(mail.getReceiver());
    	helper.setSubject(mail.getSubject());
    	//这里的text 是html
    	helper.setText(mail.getText(), true);
    	FileSystemResource file = new FileSystemResource(new File("1.png"));
    	helper.addInline("文件", file);
    	mailSender.send(mimeMessage);
    	return "发送成功!";
    }

    /*
     * 发送静态资源
     */
    @PostMapping("/sendTemplateMail")
    public void sendTemplateMail(@RequestBody Mail mail) throws Exception {

    	MimeMessage mimeMessage = mailSender.createMimeMessage();

    	MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
    	helper.setFrom(mail.getSender());
    	helper.setTo(mail.getReceiver());
    	helper.setSubject(mail.getSubject());

    	//创建邮件正文
        Context context = new Context();
        context.setVariable("id", "1");
        context.setVariable("name", "xuwujing");
        String emailContent = templateEngine.process("emailTemplate", context);
    	helper.setText(emailContent, true);
    	mailSender.send(mimeMessage);
    }
    
}

配置文件:

server.port = 8182
spring.mail.host=smtp.qq.com
# 邮箱账号
spring.mail.username=
# 邮箱密码  如果出现了535 错误,需要开启POP3/SMTP服务,并且使用授权码替换密码进行发送
#授权码一定不能有空格
spring.mail.password=
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

前端代码:

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8"/>
        <title>Title</title>
    </head>
    <body>
        模板测试     
    </body>
</html>

在这里插入图片描述pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>1.0.0</groupId>
	<artifactId>springboot-mail</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>springboot-mail</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath />
	</parent>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!--邮件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


版权声明:本文为qq_37606901原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。