如何使用 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
获得的邮件地址
我是 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