java - 使用 JAVA Mail API 发送带附件的电子邮件而不存储在本地机器中

标签 java email

我的 jsp 页面中有报告,我正在以 PDF 格式编写该报告。 我想将 PDF 作为带附件的电子邮件发送,但我不想将文件存储在本地机器或服务器中,但我想发送一封带附件的电子邮件。

最佳答案

如果您使用 Spring's JavaMail API ,您可以相当轻松地完成这类事情(或者至少,像 JavaMail API 允许的那样容易,这并不多)。所以你可以这样写:

JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here
final byte[] data = .... this holds my PDF data

mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws Exception {
      MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
     // set from, to, subject using helper
     helper.addAttachment("my.pdf", new ByteArrayResource(data));
   } 
});

附件数据可以是任何 Spring 的 Resource 抽象,ByteArrayResource 只是其中之一。

请注意,这部分 Spring API 独立存在,它不需要(但确实受益于)Spring 容器。

关于java - 使用 JAVA Mail API 发送带附件的电子邮件而不存储在本地机器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502635/

相关文章:

java - 在没有Spring的情况下使用SessionFactory?

c# - 在 C# 中使用无密码的 SMTP 发送电子邮件

php-fpm使postfix将邮件从root@myDomain发送到root@myDomain

iphone - 从 iPhone 相机发送照片?

java - 使用 spring 表单使用 jsp 中现有的 localdatetime 对象填写 datetime-local 字段

java - Android MediaPlayer 在 Android 6.0 Marshmallow 上崩溃

java - android 延迟加载图库问题

java - 构建基于 Java 的多语言 Web 应用程序的最佳编码是什么?为什么?

PHPMailer、CC 和 Linux 服务器

php - Cakephp SMTP 电子邮件语法错误