java使用gmail发送邮件
时间: 2025-01-07 21:42:30 浏览: 114
### 使用Java通过Gmail SMTP服务器发送邮件
为了实现这一功能,需要配置Java应用程序以连接到Gmail的SMTP服务器并发送电子邮件。下面是一个完整的示例程序,展示了如何利用`javax.mail`库完成此操作。
首先,确保项目中包含了必要的依赖项。对于Maven项目,在pom.xml文件内加入如下依赖:
```xml
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
```
接着编写用于发送邮件的核心逻辑代码:
```java
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class SendEmail {
public static void main(String[] args) {
String to = "[email protected]";
String from = "[email protected]";
final String username = "[email protected]"; // 用户名即为发件人的电子邮箱地址
final String password = "app-specific-password"; // 应用专用密码而非账户登录密码
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "465");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session session = Session.getInstance(prop,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse(to)
);
message.setSubject("Testing Gmail SMTP Server via Java Mail API");
message.setText("Dear User,\n\n This is a test email sent through the JavaMail API using Gmail's SMTP server.");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
```
上述代码片段创建了一个新的会话实例,并设置了相应的属性以便于与Gmail SMTP服务建立安全连接。注意这里使用的是SSL加密方式(端口465),并且启用了身份验证机制。此外,还指定了应用特定的密码而不是常规的Google帐户密码[^1]。
阅读全文
相关推荐


















