今天完成功能时用到了异步队列来完成邮件发送功能,下面介绍javas.mail接口的使用
1. 导入依赖:
Spring依赖:
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
SpringBoot依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
在使用之前还需要将你QQ邮箱的POP3/SMTP服务打开 ,步骤简略说一下:
QQ邮箱首页-->设置-->账户,在账户中找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务这一栏,将POP3/SMTP服务打开,给张截图:

最后开始使用接口,下面为实现代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
@Service
public class MailSender {
private static final Logger logger = LoggerFactory.getLogger(MailSender.class);
/**
* @param strMail 收件人
* @param strTitle 邮件标题
* @param strText 邮件内容
* @return
*/
public boolean sendEmail(String strMail, String strTitle, String strText){
boolean bret = false;
try {
final Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");
//你自己的邮箱
props.put("mail.user", "xxxxx@qq.com");
//你开启pop3/smtp时的验证码
props.put("mail.password", "xxxxxxx");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
// 设置发件人
String username = props.getProperty("mail.user");
InternetAddress form = new InternetAddress(username);
message.setFrom(form);
InternetAddress to = new InternetAddress(strMail);
message.setRecipient(Message.RecipientType.TO, to);
// 设置邮件标题
message.setSubject(strTitle);
// 设置邮件的内容体
message.setContent(strText, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
bret = true;
} catch (MessagingException e) {
logger.error("发送邮件失败:"+e.getMessage());
}
return bret;
}
}
本文介绍了如何利用Java的javax.mail接口结合SpringBoot实现通过QQ邮箱发送邮件的功能,包括设置POP3/SMTP服务,以及展示关键的发送代码。
&spm=1001.2101.3001.5002&articleId=99751852&d=1&t=3&u=556f0816a3544afb8390a35b054c246d)
1万+

被折叠的 条评论
为什么被折叠?



