如何拦截 url 文件并将其附加到邮件

How to intercept url file and attach it to mail

我有一些代码

String url = http://site/some-file.pdf

HttpURLConnection fileRequest = (HttpURLConnection) new URL(fileUrl).openConnection();
            Path file = Files.createFile(Paths.get("mydirectory" + "filename" +".pdf"));
            Files.write(file, IOUtils.toByteArray(fileRequest.getInputStream()));

此代码从 url 获取文件并将其写入我的本地家庭(例如磁盘 D)

如何在不保存到本地的情况下附加到邮件发件人?可能吗?

您可以使用 javax.activation.URLDataSource:

Part attachment = new MimeBodyPart();
URL url = new URL("http://site/some-file.pdf");
URLDataSource uds = new URLDataSource(url);
attachment.setDataHandler(new DataHandler(uds));
attachment.setDisposition(Part.ATTACHMENT);
attachment.setFileName(url.getFile());

根据文档,您可以通过使用 DataHandlerURL

来简化该代码
Part attachment = new MimeBodyPart();
URL url = new URL("http://site/some-file.pdf");
attachment.setDataHandler(new DataHandler(url));
attachment.setDisposition(Part.ATTACHMENT);
attachment.setFileName(url.getFile());