java 转发邮件代码示例
时间: 2023-07-02 11:18:39 浏览: 203
java发送邮件代码实例
以下是一个基于JavaMail API的简单邮件转发代码示例:
```java
import javax.mail.*;
import javax.mail.internet.*;
public class ForwardEmail {
public static void main(String[] args) throws Exception {
String host = "smtp.gmail.com"; // 邮件服务器主机名
String username = "your_username@gmail.com"; // 邮箱账户
String password = "your_password"; // 邮箱密码
// 获取Session对象
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
// 邮件转发地址
String forwardTo = "forward_to@example.com";
// 获取原始邮件
Store store = session.getStore("imaps");
store.connect(host, username, password);
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
Message originalMessage = messages[messages.length - 1]; // 获取最新的一封邮件
System.out.println("Original Message Subject: " + originalMessage.getSubject());
// 创建转发邮件
Message forwardMessage = new MimeMessage(session);
forwardMessage.setFrom(new InternetAddress(username));
forwardMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(forwardTo));
forwardMessage.setSubject("Fwd: " + originalMessage.getSubject());
forwardMessage.setSentDate(originalMessage.getSentDate());
// 将原始邮件内容添加到转发邮件中
Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("-------- Original Message --------\n\n");
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(originalMessage.getDataHandler());
multipart.addBodyPart(messageBodyPart);
forwardMessage.setContent(multipart);
// 发送转发邮件
Transport.send(forwardMessage);
System.out.println("Email forwarded successfully!");
}
}
```
**注意:**
- 该示例使用 Gmail 邮箱服务器作为示例,如果使用其他邮箱服务器需要修改 host 以及端口等参数。
- 该示例中使用了 IMAP 协议来读取原始邮件,如果使用 POP3 协议需要修改代码。
- 该示例中未进行异常处理,实际使用时需要进行适当的异常处理。
阅读全文