如何在Java中创建并发送邮件?含指定地址及NetBeans 8.2场景
在Java(NetBeans 8.2)中创建并发送邮件的完整指南
嘿,我来给你一步步拆解在NetBeans 8.2里用Java创建并发送邮件的完整流程——我之前在这个IDE里做过类似的需求,踩过的坑都给你避开!
第一步:搞定依赖包
Java本身没有内置完整的邮件发送工具,所以得用JavaMail API。对于NetBeans 8.2来说,最稳妥的是用javax.mail这个包:
如果是普通Java项目(非Maven):
- 下载
javax.mail.jar(这个包现在已经包含了JAF依赖,不用额外下载) - 在NetBeans里右键你的项目 → Properties → Libraries → Add JAR/Folder,选中下载好的jar包添加进去就行。
如果是Maven项目:
直接在pom.xml里加这段依赖,版本1.6.2和NetBeans 8.2兼容性拉满:
<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency>
第二步:编写核心发送代码
下面是一个可直接运行的纯文本邮件示例,我用的是Gmail的SMTP服务器(换其他邮箱的话,只需要改SMTP参数就行):
import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; public class EmailSender { public static void main(String[] args) { // 替换成你自己的发件人信息 final String senderEmail = "your-gmail-address@gmail.com"; // 注意:Gmail必须用应用专用密码(开启两步验证后生成),不能用登录密码 final String senderPassword = "your-app-specific-password"; // 收件人信息 String recipientEmail = "target-email@example.com"; String emailSubject = "来自NetBeans的测试邮件"; String emailContent = "这是用Java在NetBeans 8.2里发送的第一封邮件!"; // 配置SMTP服务器参数 Properties props = new Properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // 开启TLS加密,避免被拦截 // 创建带身份验证的邮件会话 Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(senderEmail, senderPassword); } }); try { // 构建邮件消息 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(senderEmail)); // 可以添加多个收件人,用逗号分隔 message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail)); message.setSubject(emailSubject); message.setText(emailContent); // 发送邮件 Transport.send(message); System.out.println("邮件发送成功!快去收件箱看看吧~"); } catch (MessagingException e) { // 这里可以根据需要做更细致的异常处理 throw new RuntimeException("发送邮件失败:" + e.getMessage(), e); } } }
关键注意点:
- Gmail用户:必须开启两步验证,然后在Google账号里生成应用专用密码,否则会被Google的安全机制拦截。
- 其他邮箱参数参考:
- QQ邮箱:SMTP地址
smtp.qq.com,端口587,授权码在QQ邮箱设置的“POP3/SMTP服务”里生成 - 163邮箱:SMTP地址
smtp.163.com,端口587,同样需要开启POP3/SMTP并生成授权码
- QQ邮箱:SMTP地址
第三步:在NetBeans里测试运行
- 把代码里的邮箱信息替换成你自己的
- 右键
EmailSender类 → Run File - 如果控制台输出“邮件发送成功!”,就说明搞定啦!
要是遇到报错,先排查这几点:
- 依赖jar包有没有正确添加
- SMTP地址、端口是不是写错了
- 发件人的授权码/密码是否正确
- 网络能不能连接到SMTP服务器(比如公司内网可能会屏蔽端口)
内容的提问来源于stack exchange,提问作者user9312688
相关产品推荐
相关产品推荐

