Java发送文本邮件及附件邮件,QQ邮箱POP3与SMTP授权码(springframework+javax.mail)

本文介绍如何利用Spring与JavaMail发送不同类型的邮件,包括纯文本邮件、带有附件的邮件以及HTML格式的邮件。首先,需要引入相关的Spring和JavaMail库。接着,配置JavaMailSender类,设置SMTP服务器信息、授权码等。然后,编写EmailUtil工具类,包含发送简单邮件和复杂格式邮件的方法。最后,通过测试类进行邮件发送的验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)

一、引入相关的库

 

<!-- spring核心库 -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-core</artifactId>

    <version>4.2.5.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

<version>4.2.5.RELEASE</version>

</dependency>

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>4.2.5.RELEASE</version>

</dependency>

 

<!--发送Email-->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context-support</artifactId>

    <version>4.2.5.RELEASE</version>

</dependency>

<dependency>

    <groupId>javax.mail</groupId>

    <artifactId>mail</artifactId>

    <version>1.4.7</version>

</dependency>

二、装配JavaMailSender类的配置信息

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
   xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:cache="http://www.springframework.org/schema/cache" xmlns:p="http://www.springframework.org/schema/p"
   

### Java 使用 SMTP 协议发送邮件QQ 邮箱 #### 1. 添加依赖项 为了能够使用 `JavaMailSender` 接口,项目中需引入相应的库文件。对于Maven构建的项目,在pom.xml文件内加入如下依赖: ```xml <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> ``` #### 2. 创建配置类 创建一个新的Spring Boot应用程序并定义一个用于设置SMTP服务器参数的Bean对象。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.mail.javamail.JavaMailSenderImpl; @Configuration public class MailConfig { @Bean public JavaMailSenderImpl javaMailService() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); // 设置QQ邮箱SMTP服务器地址 mailSender.setHost("smtp.qq.com"); mailSender.setPort(465); /* * 替换成自己的QQ号和授权码, * 注意不是QQ密码而是开启POP3/IMAP服务后获取到的应用程序专用密码 */ mailSender.setUsername("your_qq_number@qq.com"); mailSender.setPassword("authorization_code"); Properties props = mailSender.getJavaMailProperties(); props.put("mail.smtp.auth", true); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.debug", "false"); return mailSender; } } ``` #### 3. 编写发送邮件的服务方法 接下来编写具体负责执行发送操作的服务层逻辑代码。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; @Service public class EmailService { private final JavaMailSender mailSender; @Autowired public EmailService(JavaMailSender mailSender) { this.mailSender = mailSender; } /** * 发送纯文本形式的基础邮件 * * @param to 收件人电子信箱账号 * @param subject 主题名称 * @param content 正文内容 */ public void sendSimpleEmail(String to, String subject, String content){ SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(content); try{ mailSender.send(message); }catch (Exception e){ System.out.println(e.getMessage()); } } /** * 带有附件的HTML格式富媒体邮件 * * @param to 收件人电子信箱账号 * @param subject 主题名称 * @param htmlBody HTML正文内容 * @param filePath 文件路径列表 */ public void sendHtmlEmailWithAttachment(String to, String subject, String htmlBody, List<String> filePaths){ MimeMessage mimeMsg = null; try { mimeMsg = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMsg,true,"UTF-8"); helper.setTo(to); helper.setSubject(subject); helper.setText(htmlBody, true); if(filePaths !=null && !filePaths.isEmpty()){ for (String path : filePaths) { FileSystemResource file = new FileSystemResource(new File(path)); helper.addAttachment(file.getFilename(), file); } } mailSender.send(mimeMsg); } catch (MessagingException me) { System.err.println(me.toString()); } } } ``` 以上即为完整的基于 Spring Framework 的 Java 应用程序向 QQ 用户发送附件的 HTML 格式的电子邮件实例[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值