<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-mailartifactId>
dependency>
这个类中没有注册bean,再点开MailSenderJndiConfiguration.class可见
查看配置文件MailProperties.class
/*
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.mail;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Configuration properties for email support.
*
* @author Oliver Gierke
* @author Stephane Nicoll
* @author Eddú Meléndez
* @since 1.2.0
*/
@ConfigurationProperties(prefix = "spring.mail")
public class MailProperties {
private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
/**
* SMTP server host. For instance, 'smtp.example.com'.
*/
private String host;
/**
* SMTP server port.
*/
private Integer port;
/**
* Login user of the SMTP server.
*/
private String username;
/**
* Login password of the SMTP server.
*/
private String password;
/**
* Protocol used by the SMTP server.
*/
private String protocol = "smtp";
/**
* Default MimeMessage encoding.
*/
private Charset defaultEncoding = DEFAULT_CHARSET;
/**
* Additional JavaMail Session properties.
*/
private Map<String, String> properties = new HashMap<>();
/**
* Session JNDI name. When set, takes precedence over other Session settings.
*/
private String jndiName;
public String getHost() {
return this.host;
}
public void setHost(String host) {
this.host = host;
}
public Integer getPort() {
return this.port;
}
public void setPort(Integer port) {
this.port = port;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProtocol() {
return this.protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public Charset getDefaultEncoding() {
return this.defaultEncoding;
}
public void setDefaultEncoding(Charset defaultEncoding) {
this.defaultEncoding = defaultEncoding;
}
public Map<String, String> getProperties() {
return this.properties;
}
public void setJndiName(String jndiName) {
this.jndiName = jndiName;
}
public String getJndiName() {
return this.jndiName;
}
}
spring.application.name=springboot-09-test
spring.mail.username=邮箱账号
spring.mail.password=密码
spring.mail.host=smtp.qq.com
# qq需要配置ssl(开启密码验证)
spring.mail.properties.mail.smtp.ssl.enable=true
https://service.mail.qq.com/detail/0/141
package com.P51;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@SpringBootTest
class Springboot09TestApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
//一个简单的邮件
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("邮件主题在这里");
mailMessage.setText("这里是邮件的正文");
mailMessage.setTo("xxx");
mailMessage.setFrom("xxx");
mailSender.send(mailMessage);
}
}
2024.6.5 Wednesday
package com.P51;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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;
import java.io.File;
@SpringBootTest
class Springboot09TestApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
//一个简单的邮件
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("邮件主题在这里");
mailMessage.setText("这里是邮件的正文");
mailMessage.setTo("xxx"); //收件人
mailMessage.setFrom("xxx"); //发件人
mailSender.send(mailMessage);
}
@Test
void contextLoads1() throws MessagingException {
//一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
//内容
helper.setSubject("contextLoads1的邮件主题在这里");
helper.setText("这里是contextLoads1邮件的正文
",true);
//附件
helper.addAttachment("新建springboot项目后需要配置的内容.pdf",new File("该文件在电脑内的物理地址"));
helper.addAttachment("running.ico",new File("该ico在电脑内的物理地址"));
helper.setTo("xxx"); //收件人
helper.setFrom("xxx"); //发件人
mailSender.send(mimeMessage);
}
}
package com.P51;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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;
import java.io.File;
@SpringBootTest
class Springboot09TestApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
//一个简单的邮件
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("邮件主题在这里");
mailMessage.setText("这里是邮件的正文");
mailMessage.setTo("xxx"); //收件人
mailMessage.setFrom("xxx"); //发件人
mailSender.send(mailMessage);
}
@Test
void contextLoads1() throws MessagingException {
//一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); //支持多文本上传
//内容
helper.setSubject("contextLoads1的邮件主题在这里");
helper.setText("这里是contextLoads1邮件的正文
",true);
//附件
helper.addAttachment("新建springboot项目后需要配置的内容.pdf",new File("该文件在电脑内的物理地址"));
helper.addAttachment("running.ico",new File("该ico在电脑内的物理地址"));
helper.setTo("xxx"); //收件人
helper.setFrom("xxx"); //发件人
mailSender.send(mimeMessage);
}
//封装:参数都可以进行分装,这里没有全部展示完整
/**这段注释的快捷键:输入/**后回车
*
* @param html
* @param subject
* @param text
* @throws MessagingException
* @Author ZzzZzzzZzzzz-
*/
public void sendmail(Boolean html, String subject, String text) throws MessagingException {
//一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, html);
//内容
helper.setSubject(subject);
helper.setText(text,true);
//附件
helper.addAttachment("新建springboot项目后需要配置的内容.pdf",new File("该文件在电脑内的物理地址"));
helper.addAttachment("running.ico",new File("该ico在电脑内的物理地址"));
helper.setTo("xxx"); //收件人
helper.setFrom("xxx"); //发件人
mailSender.send(mimeMessage);
}
}