java写一个发送邮件的代码
时间: 2023-08-31 18:32:44 浏览: 77
### 回答1:
在 Java 中发送邮件需要使用 JavaMail 库。下面是一个简单的例子,它使用 Gmail 的 SMTP 服务器发送一封带有主题、正文和附件的邮件:
```java
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendEmail {
public static void main(String[] args) {
// 设置属性
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
// 获取会话
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username@gmail.com", "password");
}
});
try {
// 创建邮件
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("to@gmail.com"));
message.setSubject("主题");
message.setText("正文");
// 发送邮件
Transport.send(message);
System.out.println("邮件已发送");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
```
注意:
- 你需要使用自己的电子邮件地址和密码替换 "username@gmail.com" 和 "password"。
- 你需要为 "from@gmail.com" 和 "to@gmail.com" 指定自己的电子邮件地址。
- 在运行这段代码之前,你需要下载并安装 JavaMail 库。你可以在这里找到下载链接:
### 回答2:
以下是一个使用Java编写发送邮件的示例代码:
```java
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendEmail {
public static void main(String[] args) {
// 配置发送邮件的SMTP服务器信息
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.example.com"); // 替换为你的SMTP服务器地址
properties.put("mail.smtp.port","587"); // 替换为你的SMTP服务器端口号
// 创建一个Session对象来与SMTP服务器进行通信
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your_email@example.com", "your_password"); // 替换为你的邮箱地址和密码
}
});
try {
// 创建一个Message对象
Message message = new MimeMessage(session);
// 设置邮件的发送方
message.setFrom(new InternetAddress("your_email@example.com")); // 替换为你的邮箱地址
// 设置邮件的接收方
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com")); // 替换为收件人的邮箱地址
// 设置邮件的主题
message.setSubject("这是一封测试邮件");
// 设置邮件的正文内容
message.setText("你好,这是一封测试邮件。");
// 发送邮件
Transport.send(message);
System.out.println("邮件已成功发送。");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
```
需要注意的是,代码中的邮箱地址、密码以及SMTP服务器相关信息需要根据实际情况进行替换。此代码使用了Java Mail API来发送邮件,并通过SMTP服务器进行通信。
### 回答3:
Java提供了使用JavaMail库来发送邮件的功能。下面是一个简单的例子。
首先,我们需要导入JavaMail所需的依赖库。可以在项目的pom.xml文件中添加如下依赖:
```xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
```
然后我们可以编写发送邮件的代码:
```java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender {
public static void main(String[] args) {
// 收件人邮箱地址
String to = "recipient@example.com";
// 发件人邮箱地址
String from = "sender@example.com";
// 邮件主题
String subject = "Test Email";
// 邮件内容
String content = "This is a test email.";
// 设置邮箱服务器的属性
Properties properties = new Properties();
properties.setProperty("mail.smtp.host", "smtp.example.com");
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.smtp.auth", "true");
// 创建一个邮件会话
Session session = Session.getDefaultInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password");
}
});
try {
// 创建邮件消息
Message message = new MimeMessage(session);
// 设置发件人
message.setFrom(new InternetAddress(from));
// 设置收件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 设置主题
message.setSubject(subject);
// 设置内容
message.setText(content);
// 发送邮件
Transport.send(message);
System.out.println("Email Sent Successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
其中,需要替换以下部分:
- `to`:收件人的邮箱地址
- `from`:发件人的邮箱地址
- `smtp.example.com`:邮箱服务器的SMTP地址
- `username`:发件人的邮箱用户名
- `password`:发件人的邮箱密码
以上代码可以通过JavaMail库发送简单的文本邮件。如果需要发送带附件的邮件、HTML邮件等,还需要进一步对`message`进行设置。