答案:Java中通过JavaMail API实现邮件发送需添加依赖、开启SMTP服务并获取授权码,使用QQ或Gmail配置SMTP服务器、端口及SSL,编写代码设置属性、认证并发送邮件。

在Java中实现一个简易的邮件发送程序,主要依赖于JavaMail API。下面是一个基础但完整的示例,使用QQ邮箱或Gmail等支持SMTP的邮箱服务发送邮件。
1. 添加JavaMail依赖
如果你使用Maven项目,在pom.xml中添加以下依赖:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
如果是非Maven项目,需手动下载javax.mail.jar并加入类路径。
2. 开启邮箱SMTP服务并获取授权码
以QQ邮箱为例:
立即学习“Java免费学习笔记(深入)”;
- 登录QQ邮箱 → 设置 → 账户
- 向下找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”
- 开启“POP3/SMTP服务”,按照提示发送短信验证,获取授权码
注意:这个授权码是Java程序中使用的密码,不是你的邮箱登录密码。
Gmail用户需开启“两步验证”并生成应用专用密码。
3. 编写发送邮件代码
以下是一个发送纯文本邮件的简单示例:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class SimpleEmailSender {
public static void main(String[] args) {
String to = "receiver@example.com";
String from = "your_email@qq.com";
String host = "smtp.qq.com"; // QQ邮箱SMTP服务器
String password = "your_authorization_code"; // 授权码
// 配置邮件属性
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
// 创建认证器
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("测试邮件");
message.setText("这是一封来自Java程序的测试邮件!");
Transport.send(message);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
-
端口和SSL设置:QQ邮箱使用465端口+SSL,Gmail通常用587端口+STARTTLS(对应mail.smtp.starttls.enable=true)
-
主机地址:QQ为smtp.qq.com,Gmail为smtp.gmail.com
-
异常处理:网络不通、授权码错误、防火墙等都可能导致发送失败,注意查看异常信息
-
安全性:不要在代码中硬编码账号密码,实际项目应从配置文件读取
基本上就这些。这个例子实现了最基本的邮件发送功能,适合学习和小型项目使用。
以上就是Java中如何写一个简易的邮件发送程序的详细内容,更多请关注php中文网其它相关文章!