我是java和PDFBox的新手。 我使用PDFBox拆分PDF并将其保存在一个目标文件夹中。文件名是这样的 - > D0000025667-T04292.pdf,D0000025668-T02119.pdf,D0000025670-T01125.pdf等。 我已连接到MS Access数据库,表值如下所示:
y
我知道如何使用Java发送带附件的邮件。我的要求是我需要从表格中获取经销商代码,并在经销商代码的帮助下在目标中搜索PDF。
最后,我需要将文件附加并发送到相应的电子邮件ID。请帮我解决这个问题。
答案 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