如何使用Java实现邮件发送?附相关代码示例
使用Java发送邮件
这里给你一个基于JavaMail API实现的邮件发送示例,我们以Gmail的SMTP服务为例,同时补全了你提供代码中截断的部分:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.mail.internet.MimeMessage; public class EmailSend { public static void main(String args[]){ try{ String host ="smtp.gmail.com" ; final String user = "abc@gmail.com"; // 替换为你的发件邮箱 final String pass = "password"; // 替换为你的邮箱密码/应用专用密码 String to = "xyz@gmail.com"; // 替换为收件人邮箱 String from = "abc@gmail.com"; String subject = "Trial"; String messageText = "This is a test email!"; boolean sessionDebug = false; Properties props = System.getProperties(); // 补全SMTP核心配置 props.put("mail.smtp.host", host); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // 创建带身份验证的Session Session mailSession = Session.getDefaultInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, pass); } }); mailSession.setDebug(sessionDebug); // 开启调试模式可查看邮件发送日志 // 构建邮件内容 MimeMessage message = new MimeMessage(mailSession); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); message.setText(messageText); // 执行邮件发送 Transport.send(message); System.out.println("邮件发送成功!"); } catch (MessagingException mex) { mex.printStackTrace(); // 捕获并打印发送过程中的异常 } } }
几个关键提示:
- 依赖准备:要确保项目引入JavaMail API的依赖,比如Maven中可以添加
javax.mail:mail:1.4.7或者对应版本的Jakarta Mail依赖 - Gmail特殊配置:如果用Gmail发件,账号开启两步验证的话,必须用应用专用密码替代普通密码;未开启两步验证的话,需要暂时允许低安全性应用访问(更推荐用应用专用密码)
- 参数替换:代码里的邮箱账号、密码、收件人地址都要换成你自己的真实信息
- 调试技巧:把
sessionDebug设为true,可以看到邮件发送的详细交互日志,方便排查问题
内容的提问来源于stack exchange,提问作者Himanshu Jaiswal
相关产品推荐
相关产品推荐

