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

时间:2015-08-21 05:44:25

标签: java pdfbox

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

y

我知道如何使用Java发送带附件的邮件。我的要求是我需要从表格中获取经销商代码,并在经销商代码的帮助下在目标中搜索PDF。

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

1 个答案:

答案 0 :(得分:1)

我不是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

中的mailAdress