java发送邮件
- maven坐标
xml
<!--spring-boot-starter-mail-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 测试代码
java
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
@SpringBootTest
class SendEmailTests {
@Test
void sendEmailTest(String host, int port, String username, String password, String from, String to, String subject, String text) {
// 配置JavaMail API的属性
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.ssl.trust", host);
Session session = Session.getInstance(props);
try {
// 创建邮件对象
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
String finalText = "\n------------------分割线------------------\n";
message.setText(text + finalText);
// 发送邮件
Transport transport = session.getTransport("smtp");
transport.connect(host, port, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
@Test
void qqEmailTest() {
String host = "smtp.qq.com";
int port = 587;
String username = "sender@qq.com";
String password = "123456"; //授权码
String from = "sender@qq.com";
String to = "receiver@example.com";
String subject = "QQ"; //邮件主题
String text = "QQ邮箱测试"; //邮件正文
sendEmailTest(host, port, username, password, from, to, subject, text);
}
@Test
void axigenEmailTest() {
String host = "smtp.xclhove.top";
int port = 25;
String username = "xclhove@xclhove.top";
String password = "123456"; //密码
String from = "xclhove@xclhove.top";
String to = "xclhove@xclhove.top";
String subject = "Axigen"; //邮件主题
String text = "Axigen邮箱测试"; //邮件正文
sendEmailTest(host, port, username, password, from, to, subject, text);
}
}
- 工具类
java
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/**
* 邮件工具类
*
* @author xclhove
*/
public class EmailUtil {
/**
* 发送邮件
*
* @param host 主机名称或IP地址,如:smtp.qq.com
* @param port 端口号,如:465,587,25
* @param username 邮箱账号,如:example@qq.com
* @param password 邮箱密码
* @param from 发送方邮箱地址,如:example@qq.com
* @param to 接收方邮箱地址,如:example@qq.com
* @param subject 邮件主题
* @param text 邮件正文
* @throws MessagingException 异常信息
*/
public static void sendEmail(String host, int port, String username, String password, String from, String to, String subject, String text) throws MessagingException {
// 配置JavaMail API的属性
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.ssl.trust", host);
Session session = Session.getInstance(properties);
// 创建邮件对象
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
String finalText = "\n------------------分割线------------------\n";
message.setText(text + finalText);
// 发送邮件
Transport transport = session.getTransport("smtp");
transport.connect(host, port, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
}
最近更新:10/11/2024, 5:01:26 AM
原文链接:java发送邮件
上一篇:docker安装ChatGPT-Next-Web|下一篇:nodejs express跨域