用java写一个接口调用邮件发送
时间: 2023-12-22 12:03:04 浏览: 24
好的,以下是一个使用 Java 发送邮件的示例代码:
首先,需要引入 JavaMail 和 javax.activation 库。可以通过 Maven 或 Gradle 在项目中添加以下依赖:
```xml
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
```
然后,可以使用以下代码发送邮件:
```java
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class MailSender {
public static void main(String[] args) {
// 收件人邮箱地址
String to = "recipient@example.com";
// 发件人邮箱地址
String from = "sender@example.com";
// 邮件服务器主机名和端口号
String host = "smtp.example.com";
int port = 587;
// 发件人邮箱用户名和密码
String username = "sender@example.com";
String password = "password";
// 邮件主题和正文
String subject = "Test Email";
String body = "This is a test email.";
// 设置邮件属性
Properties properties = new Properties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
// 获取会话对象
Session session = Session.getInstance(properties, 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(subject);
message.setText(body);
// 发送邮件
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (MessagingException e) {
System.out.println("Failed to send email. Error message: " + e.getMessage());
}
}
}
```
在以上示例代码中,我们首先定义了收件人和发件人的邮箱地址,以及邮件服务器的主机名和端口号。然后,我们设置了发件人的用户名和密码,以及邮件的主题和正文。
接着,我们设置了邮件属性,包括邮件服务器的主机名、端口号、身份验证和加密方式等。我们使用 `Session.getInstance()` 方法创建了一个会话对象,并使用 Authenticator 类的子类来提供发件人的身份验证信息。
最后,我们创建了一个 MimeMessage 对象,并设置了发件人、收件人、主题和正文。我们使用 `Transport.send()` 方法发送邮件,并在发送成功后打印出一条消息。
当然,以上代码只是一个简单的示例,实际使用时可能需要根据具体情况进行一些调整。