package utils; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; import java.util.Random; public class EmailUtil { private static final Random random = new Random(); // SMTP服务器配置 - 请修改为您的邮箱配置 private static final String SMTP_HOST = "smtp.qq.com"; // QQ邮箱SMTP private static final String SMTP_PORT = "587"; // 端口 private static final String FROM_EMAIL = "2536082954@qq.com"; // 发件邮箱 private static final String EMAIL_PASSWORD = "uihuasdsosbvdiia"; // 授权码 private static final String FROM_NAME = "数学学习软件"; public static String generateRegistrationCode() { return String.format("%06d", random.nextInt(1000000)); } /** * 发送注册码到用户输入的邮箱 */ public static boolean sendRegistrationCode(String userEmail, String username, String code) { // 配置邮件服务器 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", SMTP_HOST); props.put("mail.smtp.port", SMTP_PORT); // 超时设置 props.put("mail.smtp.timeout", "10000"); props.put("mail.smtp.connectiontimeout", "10000"); // 创建认证器 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(FROM_EMAIL, EMAIL_PASSWORD); } }; Session session = Session.getInstance(props, authenticator); try { // 创建邮件 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(FROM_EMAIL, FROM_NAME, "UTF-8")); message.setRecipient(Message.RecipientType.TO, new InternetAddress(userEmail)); message.setSubject("数学学习软件 - 注册验证码", "UTF-8"); // 邮件内容(HTML格式) String htmlContent = buildEmailContent(username, code); message.setContent(htmlContent, "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); System.out.println("✅ 注册码已成功发送到: " + userEmail); return true; } catch (Exception e) { System.err.println("❌ 邮件发送失败: " + e.getMessage()); e.printStackTrace(); return false; } } /** * 构建邮件内容 */ private static String buildEmailContent(String username, String code) { return "" + "" + "
" + " " + " " + "" + "" + "亲爱的 " + username + ",您好!
" + "您正在注册数学学习软件,请使用以下验证码完成注册:
" + "如果这不是您的操作,请忽略此邮件。
" + " " + "