如何使用 java 搜索 PDF 文件并将其附加到电子邮件

How to search and attach PDF file to email using java

我是 java 和 PDFBox 的新手。 我使用 PDFBox 拆分 PDF 并将其保存在一个目标文件夹中。文件名是这样的 -> D0000025667-T04292.pdf、D0000025668-T02119.pdf、D0000025670-T01125.pdf 等等。 我已连接到 MS Access 数据库,table 值如下所示:

**Dealer Code        Email**
T04292            a@gmail.com
T04292            a@gmail.com
T02119            b@gmail.com
T01125            b@gmail.com
RS0009            c@gmail.com
RS0001            c@gmail.com
C01020            d@gmail.com

我知道如何在 Java 中发送带附件的邮件。我的要求是,我需要从 table 中获取 Dealer Code,并借助 Dealer Code 在目标中搜索 PDF。

最后,我需要将文件附加并发送到相应的电子邮件 ID。请帮我解决这个问题。

我不是 100% 确定您真正想要什么,但我认为这会对您有所帮助: 此代码访问给定路径中的所有文件,并从文件名中过滤掉 dealerName。比你能继续下去(阅读经销商的电子邮件并发送邮件)

    Path startPath = Paths.get("pathToYourDirectoryWithTheFiles");
    try {
        Files.walkFileTree(startPath, new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {

                if (Files.isRegularFile(file)) {
                    String filename = file.getFileName().toString();

                    Pattern stringPattern = Pattern.compile("\w*-(\w*)\.pdf");
                    Matcher matcher = stringPattern.matcher(filename);
                    if (matcher.find()) {
                        String dealer = matcher.group(1);

                        System.out.println(dealer);

                        // String mail = getMailForDealer(dealer);
                        // sendMailToDealer(mail,file);
                    }

                }

                return FileVisitResult.CONTINUE;
            }
        });
    } catch (IOException e) {
        e.printStackTrace();
    }

您必须自己实现方法 getMailForDealer(dealer)sendMailToDealer(mail,file)

getMailForDealer 中,您读取了给定经销商的电子邮件地址(从数据库中读取,或者您可能已将数据读入类似 Map<String,String> 的结构)

sendMailToDealer 您只需将文件附加到您从 getMailForDealer

获得的邮件地址