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

Joh*_*ell 1 java url jakarta-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()));
Run Code Online (Sandbox Code Playgroud)

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

如何在不保存本地的情况下将其附加到邮件发件人?是否可以?

jme*_*ens 7

您可以使用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());
Run Code Online (Sandbox Code Playgroud)

根据文档,您只需使用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());
Run Code Online (Sandbox Code Playgroud)