如何在 java 中搜索文件名并附加到邮件

How to search filename and attch to mail in java

我有一个文件夹,其中包含名称如 D0000025667-T04292.pdf, D0000025668-T02119.pdf, D0000025670-T01125.pdf 等的文件。

我有一个 MS 访问数据库 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

我需要从 table 中获取 'For Dealer' 代码并在文件夹中搜索。最后我需要将匹配的文件附加到电子邮件中以发送到数据库中列出的地址,例如经销商代码 T04292 与需要发送至 a@gmail.com 的文件 D0000025667-T04292.pdf 匹配。

我有一个邮件功能,可以直接指定附加文件路径,但现在我需要搜索并匹配需要附加的文件。

我只回答一个问题,组合问题没有用(另外,将文件附加到邮件中已经在其他答案中解释过,例如here)。所以这里是如何找到匹配的文件:

class DealerFilter implements FilenameFilter
{
    private final String dealer;

    DealerFilter(String dealer)
    {
        this.dealer = dealer;
    }

    @Override
    public boolean accept(File dir, String name)
    {
        // uncomment these lines for debugging:
        //System.out.println ("dealer: " + dealer);
        //System.out.println ("name:   " + name);
        //System.out.println ("dir:    " + dir);

        return name.toLowerCase().endsWith("-" + dealer.toLowerCase() + ".pdf");
    }
}

// returns null if error, empty array if not found
File[] findDealerPDFs(String directory, String dealer)
{
    File dir = new File(directory);

    File[] files = dir.listFiles(new DealerFilter(dealer));
    if (files == null)
    {
        // error
        return null;
    }
    for (File f : files)
    {
        System.out.println(f);
    }
    return files;
}