java使用smtp发送邮件
时间: 2025-03-26 08:05:20 浏览: 27
### 使用Java通过SMTP协议发送邮件
为了实现通过SMTP协议发送电子邮件的功能,在Java中通常会使用`javax.mail`库。下面展示了一个完整的例子,该实例不仅涵盖了创建基本的邮件消息,还包括了设置必要的属性来确保连接的安全性。
#### 设置项目依赖项
如果采用Maven构建工具,则可以在项目的pom.xml文件内加入如下依赖声明:
```xml
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
```
对于Gradle用户来说,应该在build.gradle里添加这样的行:
```groovy
implementation 'com.sun.mail:javax.mail:1.6.2'
```
#### 发送简单文本邮件的例子
下面是具体的代码片段用于说明怎样利用上述提到的技术栈向指定地址发出一封纯文本形式的信件:
```java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class SendEmail {
public static void main(String[] args) {
String to = "[email protected]";
String from = "[email protected]";
final String username = "your_email_id"; // 用户名通常是邮箱账号本身
final String password = "your_password_or_app_specific_password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true"); // 启用TLS加密传输[^1]
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
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 SMTP Email via Java");
message.setText("Dear Mail Crawler," +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
```
这段程序首先配置了一系列参数以适应Gmail的服务端口以及安全需求;接着建立了包含认证信息在内的Session对象;最后构造了一封简单的邮件并调用了Transport类中的静态方法完成实际投递过程。
阅读全文
相关推荐

















