Java实现邮件发送依赖JavaMail API,通过引入javax.mail或jakarta.mail依赖,配置SMTP服务器信息(如QQ邮箱smtp.qq.com:587),使用授权码认证,创建Session和MimeMessage对象,设置发件人、收件人、主题及内容,调用Transport.send()发送;支持文本、HTML格式及附件,适用于通知、验证等场景。

Java 实现邮件发送功能主要依赖于 JavaMail API,它是 Java EE 的一部分,也可以在 Java SE 环境中通过引入外部 jar 包来使用。下面是一个使用 JavaMail 发送普通文本邮件的完整实例。
1. 添加 JavaMail 依赖
注意:从 JavaEE 分离后,JavaMail 已迁移到 Jakarta EE,但大多数项目仍使用旧版 javax.mail。
如果你使用 Maven,在 pom.xml 中添加以下依赖:
com.sun.mail javax.mail 1.6.2
如果是 Java 11+ 并使用 Jakarta EE,可使用:
jakarta.mail jakarta.mail-api 2.0.1
2. 发送邮件代码示例
以下是一个使用 QQ 邮箱 SMTP 服务发送邮件的完整示例(开启 SMTP 需在邮箱设置中获取授权码):
立即学习“Java免费学习笔记(深入)”;
2.1.3 Serendipity
Serendipity是一个采用PHP实现的智能博客BLOG系统,Serendipity功能丰富,符合标准,基于BSDLicense开源。Serendipity 2.1.3 更新日志:2018-08-16*安全性:确保RSS的管理员配置和博客条目限制被解析为SQL查询的整数;*安全性:在“编辑条目”面板中防止XSS可能性;*安全性:禁止向多个人发送评论通知和邮件地址;这可用于批
93 查看详情
import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;public class EmailUtil { public static void sendEmail(String to, String subject, String body) { // 发件人邮箱(例如QQ邮箱) final String from = "your_email@qq.com"; final String password = "your_authorization_code"; // 注意:不是登录密码,是SMTP授权码 // 设置邮件服务器(以QQ邮箱为例) Properties props = new Properties(); props.put("mail.smtp.host", "smtp.qq.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // 启用 TLS // 创建认证器 Authenticator auth = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); } }; // 获取 Session 对象 Session session = Session.getInstance(props, auth); try { // 创建邮件消息 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); message.setText(body); // 发送邮件 Transport.send(message); System.out.println("邮件发送成功!"); } catch (MessagingException e) { System.out.println("邮件发送失败:" + e.getMessage()); e.printStackTrace(); } } // 测试方法 public static void main(String[] args) { sendEmail("recipient@example.com", "测试邮件", "这是一封通过 JavaMail 发送的测试邮件。"); }}
3. 常见邮箱 SMTP 配置参考
不同邮箱服务商的 SMTP 地址和端口略有差异:
QQ邮箱:smtp.qq.com,端口 587(启用 STARTTLS)163邮箱:smtp.163.com,端口 25 或 465(SSL)Gmail:smtp.gmail.com,端口 587,需开启“应用专用密码”
提示:QQ 邮箱需进入“设置 -> 账户”开启“POP3/SMTP服务”,并获取授权码代替密码。
4. 发送 HTML 邮件或带附件
如果要发送富文本或附件,需使用 MimeMultipart:
MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(from));message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));message.setSubject("HTML 邮件");// 创建内容MimeMultipart multipart = new MimeMultipart();// 添加 HTML 内容MimeBodyPart htmlPart = new MimeBodyPart();htmlPart.setContent("这是一封HTML邮件
支持加粗等样式。
", "text/html;charset=utf-8");multipart.addBodyPart(htmlPart);// 设置完整消息内容message.setContent(multipart);Transport.send(message);
基本上就这些。配置正确后,JavaMail 可稳定用于系统通知、注册验证等场景。
以上就是java怎么实现邮件发送功能 使用JavaMail API发送邮件的实例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1092592.html
微信扫一扫
支付宝扫一扫