springboot发送163邮箱
1、以下为163邮箱发送最基本的配置:以下仅需要改的就是密码,到163官网去获取自己的password
# 邮箱服务器地址
spring.mail.host=smtp.163.com
# 发送方的邮箱
spring.mail.username=c13343533950@163.com
# 发送方的授权码,邮箱设置里面生成的授权码,这个不是真实的密码
spring.mail.password=UHUHMSCSSYNIN----
spring.mail.port=465
spring.mail.protocol=smtps
# 邮件编码
spring.mail.default-encoding=UTF-8
获取密码:
2、发送邮箱工具类
package com.example.testj.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; import java.io.File; import java.io.UnsupportedEncodingException; @Component public class SendEmailUtil { private String from = "c13343533950@163.com"; // 发送发邮箱地址 @Autowired private JavaMailSender mailSender; /** * 发送纯文本邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) */ public void sendMessage(String to, String subject, String content) { // 创建一个邮件对象 SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom(from); // 设置发送发 msg.setTo(to); // 设置接收方 msg.setSubject(subject); // 设置邮件主题 msg.setText(content); // 设置邮件内容 // 发送邮件 mailSender.send(msg); } /** * 发送带附件的邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) * @param files 文件数组 // 可发送多个附件 */ public void sendMessageCarryFiles(String to, String subject, String content, File[] files) { MimeMessage mimeMessage = mailSender.createMimeMessage(); //解决附件文件名称过长乱码问题 System.setProperty("mail.mime.splitlongparameters","false"); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(from); // 设置发送发 helper.setTo(to); // 设置接收方 helper.setSubject(subject); // 设置邮件主题 helper.setText(content,true); // 设置邮件内容 if (files != null && files.length > 0) { // 添加附件(多个) for (File file : files) { helper.addAttachment(MimeUtility.encodeWord(file.getName(), "utf-8", "B"), file); } } } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // 发送邮件 mailSender.send(mimeMessage); } /** * 发送带附件的邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) * @param file 单个文件 */ public void sendMessageCarryFile(String to, String subject, String content, File file) { MimeMessage mimeMessage = mailSender.createMimeMessage(); //解决附件文件名称过长乱码问题 System.setProperty("mail.mime.splitlongparameters","false"); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(from); // 设置发送发 helper.setTo(to); // 设置接收方 helper.setSubject(subject); // 设置邮件主题 helper.setText(content,true); // 设置邮件内容 helper.addAttachment(MimeUtility.encodeWord(file.getName(), "utf-8", "B"), file); // 单个附件 } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // 发送邮件 mailSender.send(mimeMessage); } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } }
3、发送测试
@SpringBootTest @RunWith(SpringRunner.class) public class Email { @Autowired private SendEmailUtil emailUtil; @Test public void sendStringEmail() { // 测试文本邮件发送(无附件) String to = "1029142064@qq.com"; // 接收邮箱地址 String title = "附件邮箱测试"; String content = "文本邮件发送测试"; File file = new File("E:\\logo.jpg"); //emailUtil.sendMessage(to, title, content); //无附件 emailUtil.sendMessageCarryFile(to, title, content, file);//带一个附件 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)