📅  最后修改于: 2023-12-03 15:08:04.226000             🧑  作者: Mango
在Java中,我们可以通过JavaMail API将Excel文件作为邮件附件发送。以下是一个简单的示例代码:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;
public class SendEmailWithExcelAttachment
{
public static void main(String [] args)
{
// 收件人邮件地址
String to = "recipient@example.com";
// SMTP服务器主机名
String host = "smtp.mail.example.com";
// 发件人邮件地址
String from = "sender@example.com";
// 邮箱用户名和密码
final String username = "yourusername";
final String password = "yourpassword";
// 设置服务器属性
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.auth", "true");
// 获取默认的Session对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try{
// 创建MimeMessage对象
MimeMessage message = new MimeMessage(session);
// 设置发件人、收件人、主题和日期
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("发送Excel文件作为附件");
message.setSentDate(new Date());
// 创建Multipart对象
Multipart multipart = new MimeMultipart();
// 创建一个MimeBodyPart对象,包含Excel文件作为附件
MimeBodyPart attachPart = new MimeBodyPart();
String filename = "path/to/your/excel/file.xlsx";
DataSource source = new FileDataSource(filename);
attachPart.setDataHandler(new DataHandler(source));
attachPart.setFileName(filename);
// 添加附件
multipart.addBodyPart(attachPart);
// 设置邮件内容
message.setContent(multipart );
// 发送邮件
Transport.send(message);
System.out.println("发送成功...");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
在代码中,我们可以看到通过JavaMail API,我们可以从文件路径中获取一个FileDataSource对象,然后将其设置为邮件内容的MimeBodyPart对象。最后,我们将此MimeBodyPart对象添加到Multipart对象中,该对象是所有邮件组成部分的容器。
通过这个简单的示例,你可以轻松地将Excel文件附加到电子邮件中。您可以找到更多关于JavaMail API的信息,例如如何在Java中发送文本邮件或带有图片的HTML邮件。