目录
我们一般用程序发邮件,很少用程序收邮件
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-mail</artifactId>
- </dependency>
- spring:
- mail:
- # 使用SMTP发送邮件 我们使用的是QQ邮箱
- host: smtp.qq.com
- # 账号 写上自己的qq号
- username: 11*******@qq.com
- # 此处要去邮箱获取(不要复制这个)
- password: eivalefaehrkiaaa
-
- @Service
- public class SendMailServiceImpl implements SendMailService {
-
- // springboot已经整合完毕,直接自动装配
- @Autowired
- private JavaMailSender javaMailSender;
-
- // 发送者
- private String from = "114******@qq.com";
- // 接收者
- private String to="182******@qq.com";
- // 标题
- private String subject="测试邮件";
- // 正文
- private String context="你好啊,你收到我的内容了嘛";
-
-
- @Override
- public void sendMail() {
- SimpleMailMessage message = new SimpleMailMessage();
- // 发送者 ( 和下面一样,我们在发送者的宋勉加了一个名字,所以接收者收到的时候,就会显示这个名字,而不会显示我们发送者的邮箱号了)
- message.setFrom(from+"(超级无敌的大帅哥)");
- // 接收者
- message.setTo(to);
- // 标题
- message.setSubject(subject);
- // 正文
- message.setText(context);
-
- // 发送
- javaMailSender.send(message);
- }
- }
在我们使用的时候,并不会像上面一样仅仅是发送一个很简单的文字内容,可能会有图片,附件等等等等,下面我们就要来实现一下。
配置不改变
- @Service
- public class SendMailServiceImpl implements SendMailService {
-
- // springboot已经整合完毕,直接自动装配
- @Autowired
- private JavaMailSender javaMailSender;
-
- // 发送者
- private String from = "11*******@qq.com";
- // 接收者
- private String to="18*********@qq.com";
- // 标题
- private String subject="测试邮件";
- // 正文
- private String context="<img src='https://img1.baidu.com/it/u=700675537,3936578503&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1656522000&t=54182c0a2d3f1d8d22d9c24e8556a12e' />" +
- "<a href='https://www.baidu.com/' >点我有惊喜</a>" ;
-
-
- @Override
- public void sendMail() {
-
-
- try {
- MimeMessage message = javaMailSender.createMimeMessage();
- // 第二个参数true代表可以添加附件 不写的话默认false
- MimeMessageHelper helper = new MimeMessageHelper(message,true);
-
-
- // 发送者 ( 和下面一样,我们在发送者的宋勉加了一个名字,所以接收者收到的时候,就会显示这个名字,而不会显示我们发送者的邮箱号了)
- helper.setFrom(from);
- // 接收者
- helper.setTo(to);
- // 标题
- helper.setSubject(subject);
- // 正文 true 表示正文中的各种html语言要实现,不加true默认false,不管写什么html语言,都当做纯String处理
- helper.setText(context,true);
-
- // 添加附件
- File file = new File("E:\\zzz.docx");
- // 第一个参数:发送过去的附件名字 第二个参数,发送的文件
- helper.addAttachment(file.getName(),file);
-
-
- // 发送
- javaMailSender.send(message);
-
- } catch (MessagingException e) {
- e.printStackTrace();
- }
-
- }
- }