Java程序发送邮件email
如何使用Java程序发送邮件
引入email相关的依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.6.7</version>
</dependency
springboot项目可直接引入:
<!-- 邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
邮件发送需要一个发件邮箱和收件邮箱
这里收件邮箱只要是任意可以使用的邮箱就可以了
发件邮箱需要到对应的官网去打开SMTP服务,并获取授权码
这里以qq邮箱为例
设置->账号->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启服务,验证通过后保存授权码
)
qq邮箱的服务器名是 smtp.qq.com,发件端口号是465
以下是使用Java程序,发送邮件的代码,仅供参考
private void sendEmail(String message) {
// 设置邮件服务器属性
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp"); // 设置邮件服务器主机名
properties.put("mail.smtp.host", "smtp.qq.com"); // 设置邮件服务器主机名
properties.put("mail.smtp.port", "465"); // 设置邮件服务器端口号 465是qq邮箱
properties.put("mail.smtp.auth", "true"); // 启用身份验证
properties.put("mail.smtp.ssl.enable", "true"); // 启用 SSL
properties.put("mail.debug", "true"); // debug信息
// 创建会话对象
Session session = Session.getInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 在这里填写发送邮件的邮箱地址和密码/授权码
return new PasswordAuthentication("xxxxx@qq.com", "******授权码*******");
}
});
try {
// 创建邮件消息
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxx@qq.com")); // 设置发件人邮箱
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("yyyyy@163.cn zzz@qq.com aaaa@gmail.com", false)); // 设置收件人邮箱,可以同时发送多个邮箱,空格隔开
message.setSubject("邮件主题"); // 设置邮件主题
message.setText(message); // 设置邮件内容
// 发送邮件
Transport.send(message);
} catch (Exception e) {
log.error("邮件发送失败", e);
throw new UserFriendlyException("邮件发送失败", e);
}
}