Почему сервлет java прикрепляет 2 файла к электронной почте, но оба одинаковы?

Я рассылаю электронные письма, используя javax.mail

вот мой метод прикрепления

private static void addAttachment(MimeBodyPart messageBodyPart, Multipart multipart, String fileName, File fileToAttach) throws MessagingException{
    DataSource source = new FileDataSource(fileToAttach);
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName(fileName);
    multipart.addBodyPart(messageBodyPart);

}

я использую mysql, чтобы установить имена файлов и запрашивать файлы из URL, чтобы загрузить, как это

    rs = st.executeQuery("SELECT url, id, name FROM db WHERE surl != '' LIMIT 2 ");

    while(rs.next()){
        String fileName = rs.getString("name") + rs.getString("id") + ".png";
        out.println(rs.getString("url"));
        url = new URL(rs.getString("url"));
        f = new File("C:\\Users\\Desktop\\asAttach"+ rs.getString("id") +".png");

        FileUtils.copyURLToFile(url, f);

        addAttachment(messageBodyPart, multipart, fileName, f);             
    }

они продолжают прикреплять два файла, но оба одинаковы.

1 ответ

Вот как я получил его на работу.

private static void addAttachment(Multipart multipart, String fileName, String filePath) throws MessagingException{
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart = new MimeBodyPart();
    DataSource source = new FileDataSource(filePath);
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName(fileName);
    multipart.addBodyPart(messageBodyPart);

}

я не дал метод MimeBodyPart.

вот как я это использовал.

            URL url = new URL(rs.getString("url"));
            File f = new File("C:\\Users\\Desktop\\asAttach"+ rs.getString("id") +".png");

            FileUtils.copyURLToFile(url, f);

            addAttachment(multipart, fileName, f.toString());

Вы можете использовать это в цикле и прикрепить как можно больше файлов.

Другие вопросы по тегам